15
2008
10

用c语言写一个简单的windows程序

#include<windows.h>

 
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);//窗口函数说明
 
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASS wndclass;//定义窗口类结构变量
    HWND hwnd;//定义窗口句柄
    MSG msg;//定义消息结构变量
    /*定义窗口类的各属性*/
    wndclass.style=CS_HREDRAW|CS_VREDRAW;//改变窗口大小则重画
    wndclass.lpfnWndProc=WndProc;//窗口函数为WndProc
    wndclass.cbClsExtra=0;//窗口类无扩展
    wndclass.cbWndExtra=0;//窗口实例无扩展
    wndclass.hInstance=hInstance;//注册窗口实例句柄
    wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//用箭头光标
    wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
    wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//背景为白色
    wndclass.lpszMenuName=NULL;//窗口默认无菜单
    wndclass.lpszClassName=TEXT("window窗口创建");//窗口类名为windows窗口创建
    /*注册窗口类*/
    if(! RegisterClass(&wndclass))return FALSE;
    /*创建窗口*/
    hwnd=CreateWindow(TEXT("window窗口创建"), //窗口类名window窗口创建
       TEXT("window窗口创建"),//窗口名window窗口创建
       WS_OVERLAPPEDWINDOW,//重叠式窗口
 
       CW_USEDEFAULT,CW_USEDEFAULT,//左上角屏幕坐标默认值
       CW_USEDEFAULT,CW_USEDEFAULT,//窗口宽度和高度默认值
       NULL,//此窗口无父窗口
       NULL,//此窗口无主菜单
       hInstance,//创建此窗口的实例句柄
       NULL);//此窗口无创建参数
    /*显示并更新窗口*/
    ShowWindow(hwnd,nCmdShow);//显示窗口
    UpdateWindow(hwnd);//更新窗口的客户区
    /*消息循环*/
    while(GetMessage(&msg,NULL,0,0))
    {
       TranslateMessage(&msg);//键盘消息转换
       DispatchMessage(&msg);//派送消息给窗口函数
    }
    return msg.wParam;//返回推出值
}
/*窗口函数*/
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
    //根据消息值转相应的消息处理
    switch(message)
    {
    case WM_PAINT://重画窗口客户区消息处理
       HDC hdc;//定义设备描述表句柄
       PAINTSTRUCT ps;//定义绘图星系结构变量
       hdc=BeginPaint(hwnd,&ps);//获取要重画的窗口的设备描述表句柄
       TextOut(hdc,10,20,TEXT("哈哈,windows编程窗口!!"),16);//输出文本
       EndPaint(hwnd,&ps);//结束要重画的窗口
       return 0;
    case WM_DESTROY://撤销窗口消息处理
       PostQuitMessage(0);//产生推出程序消息WM_QUIT
       return 0;
    }
    return DefWindowProc(hwnd,message, wParam,lParam);
    //其他转默认窗口函数

}

完整代码下载,创建win空项目添加该代码,有问题可留言win.cpp

« 上一篇下一篇 »

相关文章:

__stdcall和cdecl调用约定  (2012-2-27 0:35:11)

将C++视为一个组合语言  (2012-2-27 0:18:28)

从C++到Java,10年技术生涯的几点思考  (2011-4-20 19:56:27)

Windows进程中的内存结构(堆和栈的区别)  (2011-3-31 23:27:45)

Windows窗口、控件和对话框  (2008-12-8 18:36:51)

怎样为XP减肥  (2008-12-1 14:28:12)

从Windows 1.0到Vista启动画面回顾  (2008-11-26 18:23:13)

25年了,Windows进步了么?  (2008-11-25 9:18:28)

你知道Windows桌面“刷新”的作用吗?   (2008-11-23 16:29:5)

高精度的计时器  (2008-11-11 10:35:44)

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。