一个完整的Win32应用程序

 

#include < windows .h >
#include
< stdio .h >

LRESULT CALLBACK WinSunProc(
        HWND hwnd,
        UINT uMsg,
        WPARAM wParam,
        LPARAM lParam
        );
int WINAPI WinMain(
    HINSTANCE hInstance,
    HINSTANCE hPreInstance,
    LPSTR lpCmdLine,
    int nCmdShow
    )
{
    WNDCLASS wndcls;
    wndcls.cbClsExtra=0;
    wndcls.cbWndExtra=0;
    wndcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
    wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
    wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
    wndcls.hInstance=hInstance;
    wndcls.lpfnWndProc=WinSunProc;
    wndcls.lpszClassName="weixin";
    wndcls.lpszMenuName=NULL;
    wndcls.style=CS_HREDRAW|CS_VREDRAW;
    RegisterClass(
&wndcls );

    HWND hwnd;
    hwnd=CreateWindow("weixin","这是标题栏显示的内容",WS_OVERLAPPEDWINDOW,
        100,100,600,400,NULL,NULL,hInstance,NULL);//CreateWindow()的第一个参数必须取wncls.lpszClassName的值,这样窗口才能创建成功,并且窗口的显示属性为在WNDCLASS wncls中所设置的属性。

    ShowWindow(hwnd,SW_SHOWNORMAL);
    UpdateWindow(hwnd);

    MSG msg;
    while(GetMessage(
&msg ,NULL,0,0))
    {
        TranslateMessage(
&msg );
        DispatchMessage(
&msg );
    }
    return 0;
}
LRESULT CALLBACK WinSunProc(
        HWND hwnd,
        UINT uMsg,
        WPARAM wParam,
        LPARAM lParam
        )
{
    switch(uMsg)
    {
    case WM_CHAR:
        char szChar[6];
        sprintf(szChar,"char is %d",wParam);
        MessageBox(hwnd,szChar,"weixin",0);
        
        break;
    case WM_LBUTTONDOWN:
        MessageBox(hwnd,"mouse clicked","weixin",0);
        HDC hdc;
        hdc=GetDC(hwnd);
        TextOut(hdc,0,0,"计算机编程语言",strlen("计算机编程语言"));
        ReleaseDC(hwnd,hdc);
        break;
    case WM_PAINT:
        HDC hDC;
        PAINTSTRUCT ps;
        hDC=BeginPaint(hwnd,
&ps );
        EndPaint(hwnd,
&ps );
        break;
    case WM_CLOSE:
        if(IDYES==MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO))
        { 
            DestroyWindow(hwnd);//注意,这并不能退出应用程序
        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);//退出应用程序
        break;
    default:
        return DefWindowProc(hwnd,uMsg,wParam,lParam);//如果去掉default这一项,运行时看不到窗口,但是程序已运行了(从任务管理器中可以看到).
    }
    return 0;
}
QQ群:
34409541 讨论网页 
34409326 讨论JAVA 已满
34408784 讨论VC++ 
34409699 讨论VC++ 
9143041 讨论MFC编程 
10614204 讨论C# 
10613030 讨论Win32编程 
10613067 讨论游戏开发 
18779860 讨论JAVA 
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值