Windows编程
田鑫1860
热爱机器学习/数据挖掘/自然语言处理
展开
-
窗口产生及消息循环
不得不承认使用MFC编程很方便,但是熟练掌握、运用MFC需要,并且了解MFC的实现原理并不是一件容易的事,了解其实现机制将会给我们编程过程带来更大的自由度,所以很有必要对其实现机制原创 2012-10-05 20:48:50 · 137 阅读 · 0 评论 -
窗口产生及消息循环
不得不承认使用MFC编程很方便,但是熟练掌握、运用MFC需要,并且了解MFC的实现原理并不是一件容易的事,了解其实现机制将会给我们编程过程带来更大的自由度,现在我们就来窥其究竟,以解知其然而不知其所以然的疑惑。 简单的讲,MFC就是在windows编程的基础上,对Windows函数进行了重新组织、封装,以便程序员们使用更方便,所以我们就需要windows程序的实现机制。原创 2012-10-05 21:24:59 · 1807 阅读 · 0 评论 -
内存设备环境
内存设备环境(memory device context),使用GDI位图对象的时候,需要用到内存设备环境。 通常,设备环境对应于特定的图形输出设备,(例如:视屏显示和打印机)和设备驱动。内存设备环境只存在于内存。它不是一个真实的图形输出设备,但是通俗的讲,它和特定的真实设备“兼容” 要创建一个设备环境,必须有一个对应于真实设备的设别句柄。假设句柄是hdc,则可以这样创建内存设备环境: hd原创 2012-10-12 19:48:37 · 1829 阅读 · 1 评论 -
键盘消息基础
键盘是在windows程序中经常用到的输入来源,但是程序却并没有必要去处理所接受到得每一个键盘消息。Windows自己已经实现了许多键盘消息处理功能。 例如,通常可以忽略一些属于系统功能的键盘消息。这些击键消息一般包括Alt键。我们的程序不必去监控这些击键,因为Windows会将这些击键的效果通报给程序。(如果程序想监视,完全可以做到)与程序菜单相关的击键会被传递给相应窗口的原创 2012-10-19 20:39:14 · 593 阅读 · 0 评论 -
这个消息是谁的?
当很多应用程序同时运行在Windows上时,这些程序共享Windows的一切资源,包括键盘,那么当发出一个键盘消息时,这个消息时给哪个程序的呢?如果该程序有多个窗口,这个消息又是哪个窗口的呢? 当发出一个消息到消息队列时,这个消息本省携带的信息就明确地指出了自己是针对哪个窗口的,这个标识就是MSG结构中的hwnd变量,所以发出一个消息,该消息对应一个窗口,该窗口对应一个窗口过程原创 2012-10-19 21:01:45 · 672 阅读 · 0 评论 -
显示和打印
Windows支持2个函数将DIB位图显示在视频显示器或者打印页上。如果想追求更好的性能,就需要采用间接的方法来显示位图。 这2个函数分别是SetBitsToDevice和StretchDibs,每个函数都使用存储在内存中的DIB,并且可以显示整个DIB或者DIB的部分区域。使用SetDibsToDevice时,所显示图像的像素数大小和DIB的像素数一样。例如,一个640*480的DI原创 2012-10-23 20:27:58 · 923 阅读 · 0 评论 -
创建和绘制区域
区域是对显示器上一个范围的描述,这个范围可以是矩形、多边形和椭圆的组合。区域可以用来绘制和裁剪,通过将区域选进设备描述表,就可以用区域来进行裁剪(就是说,将可以绘图的范围限制为客户区的一部分)。与画笔、画刷和位图一样,区域是GDI对象,我们应该调用SelectObje将其选入设备描述表,调用DeleObj来删除所创建的区域。 当我们创建一个区域时,Windows返回一个该区域的句柄,类型为HR原创 2012-10-09 21:10:11 · 788 阅读 · 0 评论