windows编程
文章平均质量分 52
chenfj01
这个作者很懒,什么都没留下…
展开
-
关于WM_PAINT
大多数Windows程序在WinMain中进入消息循环之前的初始化期间都要呼叫函数UpdateWindow。Windows利用这个机会给窗口消息处理程序发送第一个WM_PAINT消息。这个消息通知窗口消息处理程序:必须绘制显示区域。此后,窗口消息处理程序应在任何时刻都准备好处理其它WM_PAINT消息,必要的话,甚至重新绘制窗口的整个显示区域。在发生下面几种事件之一时,窗口消息处理程序会接收到一个原创 2005-12-26 09:18:00 · 1352 阅读 · 0 评论 -
滚动条
在程序内使用滚动条时,程序写作者与Windows共同负责维护滚动条以及更新卷动方块的位置。下面是Windows对滚动条的处理:处理所有滚动条鼠标事件 当使用者在滚动条内单击鼠标时,提供一种「反相显示」的闪烁 当使用者在滚动条内拖动卷动方块时,移动卷动方块 为包含滚动条窗口的窗口消息处理程序发送滚动条消息 以下是程序写作者应该完成的工作:初始化滚动条的范围和位置 处理窗口消息处理程序的滚动原创 2005-12-26 13:08:00 · 796 阅读 · 0 评论 -
GDI函数呼叫分类
组成GDI的几百个函数呼叫可以分为几大类:取得(或者建立)和释放(或者清除)设备内容的函数 我们在前面的章节中已经看到过,您在绘图时需要设备内容句柄。GetDC和RealseDC函数让您在非WM_PAINT的消息处理期间来做到这一点,而BeginPaint和EndPaint函数(虽然在技术上它们是USER模块而不是GDI模块的一部分)在进行绘图的WM_PAINT消息处理期间使用。我们马上还会介绍有原创 2005-12-27 09:36:00 · 1478 阅读 · 0 评论 -
处理WM_PAINT消息
一般地,处理WM_PAINT消息的形式如下:case WM_PAINT: hdc=BeginPaint(hwnd,&ps); //取得设备内容句柄 使用GDI函数; EndPaint(hwnd,&ps); //释放句柄 Return 0; 在处理WM_PAINT消息时,必须成对地呼叫BeginPaint和EndPaint原创 2005-12-26 09:55:00 · 1479 阅读 · 0 评论 -
画笔SelectObject
SelectObject的传回值是此呼叫前设备内容中的画笔句柄。如果启动一个新的内容并呼叫hPen=SelectObject(hdc,GetStockObject(WHITE_PEN));则设备内容中的目前画笔将为WHITE_PEN,变量hPen将会是BLACK_PEN的句柄以后通过呼叫SelectObject(hdc,hPen);就能后将BLACK_PEN选进设备内容。在使用画笔等GDI对象时,原创 2005-12-28 18:44:00 · 1349 阅读 · 0 评论 -
鼠标消息
如果您在非活动窗口的显示区域中按下鼠标左键,Windows将把活动窗口改为在其中按下鼠标按键的窗口,然后把WM_LBUTTONDOWN消息送到该窗口消息处理程序。当窗口消息处理程序得到WM_LBUTTONDOWN消息时,您的程序就可以安全地假定该窗口是活动化的了。不过,您的窗口消息处理程序可能在未接收到WM_LBUTTONDOWN消息的情况下先接收到了WM_LBUTTONUP的消息。如果在一个窗口原创 2005-12-30 09:30:00 · 1264 阅读 · 0 评论 -
键盘消息
处理按键和字符消息的基本规则是:如果需要读取输入到窗口的键盘字符,那么您可以处理WM_CHAR消息。如果需要读取光标键、功能键、Delete、Insert、Shift、Ctrl以及Alt键,那么您可以处理WM_KEYDOWN消息。表6-13按键字符代码产生方法ANSI C控制字符Backspace0x08Ctrl-H/bTab0x09Ctrl-I/tCtrl-Enter0x0ACtrl-J/nEn原创 2005-12-28 20:27:00 · 1079 阅读 · 0 评论 -
插入符号
如果程序中需要插入符号,那么您不应该简单地在窗口消息处理程序的WM_CREATE消息处理期间建立它,然后在WM_DESTROY消息处理期间撤消。其原因显而易见:一个消息队列只能支持一个插入符号。因此,如果您的程序有多个窗口,那么各个窗口必须有效地共享相同的插入符号。其实,它并不像听起来那么多限制。您再想想就会发现,只有在窗口有输入焦点时,窗口内显示插入符号才有意义。事实上,闪烁的插入符号只是一种视原创 2005-12-28 21:37:00 · 1233 阅读 · 0 评论 -
关于callback回调函数
callback函数,就是由windows系统调用的函数。这些函数由你设计,却不会由你调用,是为windows系统准备的。为什么Windows Programming Modal要把窗口函数设计为一个call back函数?为什么不让程序(GetMessage)之后直接调用它?原因是:除了你需要调用它,有很多时候操作系统也要调用你的窗口函数(例如当某个消息产生或某个事件发生)。窗口函数设计为c原创 2006-03-02 10:39:00 · 1861 阅读 · 0 评论