积累的VC编程小技巧之工具提示

积累的VC编程小技巧之工具提示

ID:41033207

大小:70.50 KB

页数:12页

时间:2019-08-14

积累的VC编程小技巧之工具提示_第1页
积累的VC编程小技巧之工具提示_第2页
积累的VC编程小技巧之工具提示_第3页
积累的VC编程小技巧之工具提示_第4页
积累的VC编程小技巧之工具提示_第5页
资源描述:

《积累的VC编程小技巧之工具提示》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1.用鼠标移动基于对话框的无标题栏程序的简单方法voidCVCTestDlg::OnLButtonDown(UINTnFlags,CPointpoint){//一句话解决问题SendMessage(WM_SYSCOMMAND,0xF012,0);CDialog::OnLButtonDown(nFlags,point);}2.对话框消息映射有对话框A,B从A中发消息给B然后B处理。准备工作,先定义消息,如下#defineWM_B_NOTIFYWM_USER+300首先,必须将B的对话框句柄传送给A,暂时叫

2、m_hWndB;在A的发送消息的地方这样写:::SendMessage(m_hWndB,WM_B_NOTIFY,TRUE,NULL);这样A中的处理就完了,下面说B中的首先定义消息处理函数,如下voidB::ModiNotify(WPARAMwParam,LPARAMlParam){MessageBox("小样,我就不信,搞不定你!");}然后加消息隐射,如下:BEGIN_MESSAGE_MAP(CB,CDialog)//{{AFX_MSG_MAP(CRPServerDlg)ON_MESSAGE(WM_

3、B_NOTIFY,ModiNotify)//}}AFX_MSG_MAPEND_MESSAGE_MAP()3.如何改变框对话或窗体视窗的背景颜色调用CWinApp::SetDialogBkColor可以改变所有应用程序的背景颜色。第一个参数指定了背景颜色,第二个参数指定了文本颜色。下例将应用程序对话设置为蓝色背景和黄色文本。BOOLCSampleApp::InitInstance(){…//usebluedialogwithyellowtext.SetDialogBkColor(RGB(0,0,255),

4、RGB(255,255,0));…}需要重画对话(或对话的子控件)时,Windows向对话发送消息WM_CTLCOLOR,通常用户可以让Windows选择绘画背景的刷子,也可重置该消息指定刷子。下例说明了创建一个红色背景对话的步骤。首先,给对话基类增加一人成员变量CBursh:classCMyFormView:publicCFormView{…private:CBrushm_brush;//backgroundbrush…};其次,在类的构造函数中将刷子初始化为所需要的背景颜色。CMyFormView:

5、:CMyFormView(){//Initializebackgroundbrush.m_brush.CreateSolidBrush(RGB(0,0,255))}最后,使用ClassWizard处理WM_CTLCOLOR消息并返回一个用来绘画对话背景的刷子句柄。注意:由于当重画对话控件时也要调用该函数,所以要检测nCtlColor参量。HBRUSHCMyFormView::OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor){//Determineifdrawinga

6、dialogbox.Ifweare,return+handleto//ourownbackgroundbrush.Otherwiseletwindowshandleit.if(nCtlColor==CTLCOLOR_DLG)return(HBRUSH)m_brush.GetSafeHandle();returnCFormView::OnCtlColor(pDC,pWnd,nCtlColor);}4.如何实现点一下对话框外面的区域,自动隐藏对话框?[问题提出]如果想在点击对话框外面的地方使得对话框关闭,该

7、如何做?[解决方法]试试下面的代码,原理是在激活对话框时,捕获鼠标的动作,当鼠标点击时判断是否点击在对话框外,是的话就释放对话框.[程序实现]建立名为My的对话框程序.实现如下步骤:在MyDlg.h中加入:classCShowWindow1Dlg:publicCDialog{//Constructionpublic:intm_cx;intm_cy;......};在MyDlg.cpp中://定义消息映象,处理鼠标单击及激活BEGIN_MESSAGE_MAP(CMyDlg,CDialog)//{{AFX_

8、MSG_MAP(CMyDlg)ON_WM_LBUTTONDOWN()ON_WM_ACTIVATE()//}}AFX_MSG_MAPEND_MESSAGE_MAP()voidCMyDlg::OnLButtonDown(UINTnFlags,CPointpoint){CRectrect;GetClientRect(&rect);rect.InflateRect(m_cx,m_cy);//Releasedialogiftheuserclickou

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。