首页 > C/C++语言 > C/C++基本语法 > windows核心编程一书编程方法析[转贴]
2006
09-05

windows核心编程一书编程方法析[转贴]

我对windows界面编程一直不甚了解,自从学C语言时我就想如何写一个窗体出来,不过我走了很多弯路,MFC和纯SDK方式的都嫌繁琐,MFC自动生成的代码,SDK繁琐的WndProc,都很让我头疼,所以一直以来我都用C++写黑洞洞console程序。而看了windows核心编程中jeffrey的示例代码,很是喜欢这种风格,既保持了SDK编程的灵活,又很好控制。其实说起来也不是很出奇,界面用的资源编辑器,消息处理用了消息分流器。
仿照他的第一个例子,我写了个简单的小程序。


#include  < windowsx.h >
#include 
< tchar.h >
#include 
resource.h
#include 
CmnHdr.h
bool  Dlg_OnInitDialog(HWND hwnd,HWND hwndFocus,LP ARAM lParam)
{
    
return   true ;
}

void  Dlg_OnCommand(HWND hwnd, int  id,HWND hwndCtrl,UINT codeNotify)
{
    
switch (id)
    
{
    
case  IDCANCEL:
        EndDialog(hw nd,
0 );
        
break ;
    
case  IDOK:
        MessageBox(N ULL,
hello world! , win3201 ,MB_OK);
        
break ;
    }

}

INT_PTR WINAPI Dlg_Proc(HWND hwnd,UINT u Msg,WPARAM wParam,LPARAM lParam)
{
    
switch (uMsg)
    
{
        chHANDLE_DLG MSG(hwnd,WM_INITDIALOG,Dlg_OnInitDialog);
        chHANDLE_DLG MSG(hwnd,WM_COMMAND,Dlg_OnCommand);
    }

    
return   false ;
}

int  WINAPI WinMain(IN HINSTANCE hInstance, IN HINSTANCE hPrevInstance, IN LPST R lpCmdLine, IN  int  nShowCmd )
{
    DialogBoxParam(hInstance,MAKEINTRESO URCE(IDD_DIALOG1),NULL,Dlg_Proc,_ttoi(lpCmdLine));
    
return   0 ;
}

资源文件仅仅是个最简单的窗口,两个按钮:确定,取消。
CmnHdr.h是windows核心编程一书中例子都用到的头文件,里面定义了一些很好用的宏。下次再详细说说这个文件。
源代码下载:
http://www.filelodge.com/files/hdd7/152006/win01.rar


留下一个回复