VC 对话框
Anliya
这个作者很懒,什么都没留下…
展开
-
如何创建非模态对话框?
假设我所创建的非模态对话框所对应的类是:CTestDlg(1) 声明成员变量 CTestDlg m_dlg; (2)在需要创建模态对话框的函数中添加如下语句:if(!IsWindow(m_dlg.m_hWnd)) { m_dlg.Create(IDD_DIALOG_ALIGN,NULL); } m_dlg.ShowWindow(SW_SHOW);原创 2012-05-07 15:56:56 · 434 阅读 · 0 评论 -
如何打开文件对话框并将选择的文件显示在编辑框中?
(1)在对话框中添加一个编辑框和一个按钮,如下图所示: (2)为编辑框添加CEdit控件变量m_filePath。(3)为“浏览”按钮添加响应函数,函数内容如下: const char pszFilter[] = _T("BMP文件 (*.bmp)|*.bmp||"); CFileDialog dlg(TRUE, "bmp", NULL, OFN原创 2011-06-21 14:16:00 · 900 阅读 · 0 评论 -
窗口坐标
CWnd::GetWindowRect() : 获得的是CWnd的屏幕坐标CWnd::ScreenToClient(lpRect) : 将lpRect的坐标转为以CWnd为参照的坐标原创 2012-06-08 14:53:43 · 426 阅读 · 0 评论 -
如何打开指定路径的对话框
问:如何打开指定路径的对话框? 答: CFileDialog FileDlg (TRUE,"*.*",NULL,OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_ALLOWMULTISELECT,"(*.*)|*.*|",this); FileDlg.m_ofn.lpstrInitialDir = "D原创 2010-03-08 10:27:00 · 818 阅读 · 0 评论 -
窗口矩形坐标
1.wnd.GetClientRect(rect)所得矩形的坐标取自wnd的坐标系,而wnd的坐标均指客户区坐标。2.wnd.MapWindowPoints(this,rect)指将rect在wnd中的坐标转换为this所指的窗口坐标3.wnd.MoveWindow(rect)rect的坐标指的是wnd父窗口客户区的坐标系下的坐标。如果wnd是顶层窗口,则rect是屏幕坐标系下原创 2012-03-22 14:05:17 · 794 阅读 · 0 评论 -
如何让对话框中的控件和对话框一起变小变大?
1. 添加成员变量CRect m_rect; 用来记录当前对话框的大小。2. 在OnInitDialog()函数中获取对话框创建时的大小:GetClientRect(&m_rect);3. 增加消息WM_SIZE的消息响应函数 OnSize():只要对话框大小发生变化,就会调用该函数。4. 在OnSize()函数中增加如下代码:(最简单的为例子,就一个控件,控件的ID为ID_CONT转载 2011-06-21 15:11:00 · 1691 阅读 · 0 评论 -
如何将光标定位在对话框上的某个控件上
问:如何将光标定位在对话框上的某个控件上? 答:比如控件标识是IDC_EDIT1,要想在对话框刚打开时就使该控件获得光标,只需要在该对话框的OnPaint()函数中添加如下语句: GetDlgItem(IDC_EDIT1)->SetFocus();原创 2012-03-16 10:21:27 · 1152 阅读 · 0 评论 -
屏蔽Enter键和Esc键
问: 如何在对话框中屏蔽Enter键和Esc键 答:只需为你的对话框类添加虚函数PreTranslateMessage即可,函数体如下:BOOL CXXXDlg::PreTranslateMessage(MSG *pMsg){ if(pMsg->message==WM_KEYDOWN) {原创 2008-08-08 11:25:00 · 636 阅读 · 0 评论 -
如何在对话框中加入菜单栏?
问:如何在对话框中加入菜单栏? 答:(1)打开"Resource" Tab,在项目文件夹上点击右键->Insert->Menu->New, 比如这里将其命名为IDR_MENU_MAIN。 (2)在对话框上窗体右键->属性->在"Gernerel" Tab中将menu项选成IDR_MENU_MAIN即可。原创 2010-03-09 10:54:00 · 855 阅读 · 0 评论 -
如果错误的删除了对话框的退出按钮,如何添加新的退出按钮?
问:如果错误的删除了对话框的退出按钮,如何添加新的退出按钮? 答:只需新建一个按钮,然后将其ID改为IDCANCEL就可以了,不用添加任何代码。原创 2010-03-10 11:01:00 · 739 阅读 · 0 评论 -
如何让对话框在一启动时就最大化?
在OnInitDialog()中添加如下代码即可: ShowWindow(SW_SHOWMAXIMIZED);原创 2011-06-21 11:13:00 · 1053 阅读 · 1 评论 -
OnSize之后有边框有残影或者有莫名的黑色区域怎么办
在OnSize的代码中增加红色代码行即可: pButtonConfirm->GetWindowRect(rect); ScreenToClient(rect); InvalidateRect(rect); rect.left = rect.left+cxAdd; rect.right = rect.right+c...原创 2019-06-05 16:46:54 · 333 阅读 · 0 评论