
窗口 window
tobealv
这个作者很懒,什么都没留下…
展开
-
获取一个控件相对于父窗口的坐标位置
MapWindowPoints原创 2011-09-06 15:23:12 · 3385 阅读 · 0 评论 -
到底什么是无效区域?什么是使窗口无效?
举例,有两个窗口:A和BB在A的上面,并遮住了A的一部分,那么A的被遮住的这部分就叫做A的无效区域,因为这个时候对于A来说这块区域等于并不属于它了。这种情况是由于有个实际存在的窗口遮住产生了无效区域,但有的时候没有实际窗口,但为了重绘就手动使某区域无效,也就是InvalidiRect(),这便是“使窗口无效”的概念原创 2011-05-08 14:08:00 · 3344 阅读 · 0 评论 -
模态对话框与非模态对话框的销毁
本文中用到的术语:窗口:指的是窗口窗口对象:指的是与窗口关联的C++对象注:本文说的非模态对话框指的是在堆中创建的(new出来的)。1.模态对话框之所以能垄断输入,是因为它拥有自己的消息循环,而非模态对话框与父窗口共用一个消息循环2.对一个对话框来说,窗口的销毁必须在窗口对象的销毁之前3.关于DestroyWindow(1)DestroyWindow是C原创 2011-09-30 12:01:21 · 849 阅读 · 0 评论 -
重叠窗口,需要改变下层窗口的状态时,改变内容后,需要SetWindowPos把该窗口置顶(位置并非就跑到上面了)
方法一:查看msdn的setwindowpos 示例: ::SetWindowPos(m_hWnd,HWND_TOP,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); /* frame窗口置前,否则节点不显示选中 */ 方法二:SetForegroundWindow(); 方法三:SetFocus();这种方法是最灵活的.但是要原创 2010-12-15 11:57:00 · 1071 阅读 · 0 评论 -
GetClientRect / ClientToScreen
在用这两个函数的时候,它们的所属对象一定要是同一个窗口对象。例: CRect rect; GetDlgItem(IDC_BUTTON31)->GetClientRect(&rect); //ClientToScreen(&rect);// 这样是不对的,因为这样用,窗口对象是本按钮所在窗口,而不是本按钮 GetDlgItem(IDC_BUTTON31原创 2011-12-19 11:43:21 · 895 阅读 · 0 评论 -
SetWindowPos与MoveWindow
在调整某个窗口内控件的位置时,尽量用MoveWindow,而不用SetWindowPos,因为SetWindowPos使用不当容易造成Tab序失效原创 2011-12-22 09:00:45 · 1425 阅读 · 0 评论 -
获取对话框的背景颜色
正解:GetSysColor(COLOR_3DFACE)网上其它解释如GetSysColor(COLOR_WINDOW);::GetClassLong(hWnd, GCL_HBRBACKGROUND);HBRUSH brDlgBk = (HBRUSH)::GetSysColorBrush(CTLCOLOR_DLG); LOGBRUSH lb; Get原创 2012-04-13 11:05:22 · 1518 阅读 · 1 评论 -
判断一个窗口是显示还是隐藏
IsWindowVisible();看MSDN的意思这个函数只能判断窗口是否具有WS_VISIBLE属性。而实践证明,它可以判断窗口当前是显示着还是隐藏了。另外有个函数GetWindowPlacement(),照说可以判断窗口状态,但不知为什么得到的showCmd总是SW_SHOWNORMAL,无论是显示还是隐藏。原创 2012-09-12 14:54:49 · 5053 阅读 · 0 评论 -
VC删除工具栏图标
1.只要从工具栏中把图标拖出去就可以了,即使原创 2014-07-30 11:41:26 · 1130 阅读 · 0 评论 -
CWnd Create
Create函数中的窗口类名,要么为NULL,要么是一个确实存在的类名,不能随便填写原创 2011-09-28 12:20:13 · 2213 阅读 · 0 评论 -
设置焦点
一. 模态对话框在OnInitDialog中使用SetFocus.并且返回FALSE看MFC自动生成的注释 return FALSE; // return TRUE unless you set the focus to a control二、非模原创 2011-09-21 14:12:35 · 736 阅读 · 0 评论 -
SetWindowPos的坐标
setwindowpos确实是客户区的坐标,它的原点在父窗口的左上角原创 2011-09-06 15:08:55 · 912 阅读 · 0 评论 -
vc如何派生CWNd类
在VC++环境下,要从MFC类中再派生出自己的类,可以使用ClassWizard向导来帮助完成。比如我们可以派生出CTreeCtrl的一个子类,来实现自己的树型控件。但是并不是MFC的每一个类都可以在ClassWizard中找到,比如CSplitterWnd类。要实现从这样一个类转载 2011-04-08 16:53:00 · 1181 阅读 · 0 评论 -
MessageBox
MessageBox的hwnd为当前窗口才成为模态形式原创 2010-11-27 17:03:00 · 445 阅读 · 0 评论 -
OnSize函数
OnSize函数的cx cy都是"当前对话框"的宽度和高度,并非是屏幕的原创 2011-07-05 13:24:52 · 1873 阅读 · 0 评论 -
OnCreate PreCreateWindow PreSubclassWindow
PreCreateWindow和PreSubclassWindow是虚函数,而OnCreate是一个消息响应函数。对比对话框的2种创建方式下,这3个函数的是否调用的状态: OnCreatePreCreateWindowPreSubclassWind转载 2011-05-04 20:52:00 · 498 阅读 · 0 评论 -
CWnd的MoveWindow的参数
MoveWindow的参数坐标值,是相对于其父窗口的位置的坐标值,其实它不能称为客户区坐标或屏幕坐标原创 2011-07-05 13:19:14 · 1551 阅读 · 0 评论 -
判断窗口是否可用
IsWindowEnabled原创 2010-12-16 17:04:00 · 1058 阅读 · 0 评论 -
updateData的用法
UpdateData不必放在函数开头或末尾,可以放在任何需要的位置,且有时必须放在需要的位置.比如有两个控件,只想更新其中一个,那么就必须在给第一个关联的成员变量赋值后,就调用UpdateData,然后再给第二个关联的成员变量赋值.否则,如果放到最后,则连同第二个也更新了.原创 2010-11-23 14:01:00 · 1053 阅读 · 0 评论 -
MFC中基于对话框的程序启动后自动隐藏
本文简单介绍一下VC中基于对话框的程序启动后的自动隐藏技术。有的程序需要在启动后立即隐藏主窗口,只在系统托盘区域显示一个图标,这常见于很多后台服务程序。对于基于对话框的程序,要实现此功能需要一点技巧。该技术的关键点在于,需要使用非模态对话框,而不是默认的模态对话框。模态对话框的DoModal()事实上执行了对话框的创建、显示、消息循环等一系列过程。我们这里要做的就是把这个过程重现,转载 2015-02-07 22:35:11 · 2376 阅读 · 2 评论