当前位置:文章首页 >> 程序设计 >> C/C++ >> C/C++语言基础 >> 标题:windows核心编程一书编程方法析[转贴]
标题:windows核心编程一书编程方法析[转贴]
2007-10-20 09:33:30  作者: cboy     来源:C语言帝国  文字大小:【】【】【

我对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


  •  ©  2006-2008 www.qq08.net 业务联系 广告刊登 QQ:517165800统计

  • 皖ICP备07000033号