当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 今天修改了一下CmnHdr.h的chHANDLE_DLGMSG宏,编译通过了。
 

 

 ·mfc绘图1--使用不同dc     »显示摘要«
    摘要://使用hdc绘图/*hdc hdc;hdc=::getdc(m_hwnd);movetoex(hdc,m_ptorigin.x,m_ptorigin.y,null);lineto(hdc,point.x,point.y);::releasedc(m_hwnd,hdc);*///所有跟窗口相关的操作都被封装在cwnd类中//所有跟绘图相关的操作都被封装在cdc类中//使用cdc绘图/*cdc *p......
 ·vc6 的小bug —— fmodf()     »显示摘要«
    摘要:以前写一个程序遇到一个小问题,但是一直没时间把这个问题整理出来。当时的测试程序也早已经不在了,只能重新写一个。bug来源于vc里的数学库。fmodf()函数可以对float型的变量进行取模运算,但是对有些值的有些运算却不能正确表达。可以参照以下这个程序。 #include <math.h>#include <iostream>using namespace std;void......


windows核心编程第一章

今天修改了一下cmnhdr.h的chhandle_dlgmsg宏,编译通过了.

1.窗口过程返回lresult(即long);对话框过程返回bool(即int,不过vc.net自动生成的代码为lresult.); 【程序编程相关:使用directShow播放mpeg的基

消息处理宏handle_msg只能用于窗口过程,不能用于对话框过程.首先看窗口过程与对话框过程的差别: 【推荐阅读:Windows CE 开发初步

wm_ctlcolormsgbox 【扩展信息:从Windows消息的角度看窗口应用程序

2.窗口过程处理完一条消息后,一般返回0;而对话框过程一般处理完一条消息后,返回true,如果不处理则返回false,由对话框管理器执行默认操作.但以下几条消息例外,对它们处理完后要返回特定值:

...

wm_initdialog

所以设计用于窗口过程的handal_wm_*一般返回0,如把它用于对话框过程,反而表示对话框过程未处理由系统自行默认操作.改正的方法是改为返回true即可.但是对于上边所说的要返回特定值得消息,返回值要保持不变.

知道了上边的区别,我们就可以设计专用与对话框过程的消息处理宏了.

作者的设计是利用了setdlgmsgresult,比较简洁,但初学者就头疼了:// the normal handle_msg macro in windowsx.h does not work properly for dialog// boxes because dlgproc return a bool instead of an lresult (like// wndprocs). this chhandle_dlgmsg macro corrects the problem:#define chhandle_dlgmsg(hwnd, message, fn)                 \   case (message): return (setdlgmsgresult(hwnd, umsg,     \      handle_##message((hwnd), (wparam), (lparam), (fn))))*/


...   下一页
    摘要:一、创建一个线程 handle createthread( lpsecurity_attributes lpthreadattributes, size_t dwstacksize, lpthread_start_routine lpstartaddress, lpvoid lpparameter, dword dwcreationflags, lpdword lpthre......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE