简单的c 窗口语言,win32 api实现简单的消息窗口示例

#include

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)

{

static TCHAR szAppName[]=TEXT("HelloWin");

HWND hwnd;

MSG msg;

WNDCLASS wndclass;

wndclass.style                =CS_HREDRAW|CS_VREDRAW;

wndclass.lpfnWndProc          =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        =szAppName;

if(!RegisterClass(&wndclass))

{

MessageBox(NULL,TEXT("This program requires Windows NT!"),szAppName,MB_ICONERROR);

return 0;

}

hwnd=CreateWindow(szAppName,TEXT("The hello program"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,

CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,iCmdShow);

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)

{

HDC            hdc;

PAINTSTRUCT    ps;

RECT           rect;

switch(message)

{

case WM_CREATE:

PlaySound(TEXT("hellowin.wav"),NULL,SND_FILENAME|SND_ASYNC);

return 0;

case WM_PAINT:

hdc=BeginPaint(hwnd,&ps);

GetClientRect(hwnd,&rect);

DrawText(hdc,TEXT("HELLO WORLD!"),-1,&rect,

DT_SINGLELINE|DT_CENTER|DT_VCENTER);

EndPaint(hwnd,&ps);

return 0;

case WM_DESTROY:

PostQuitMessage(0);

return 0;

}

return DefWindowProc(hwnd,message,wParam,lParam);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值