• HelloWin程序(窗口与消息)


    #include <windows.h>
    #pragma comment(lib,"WINMM.LIB")
    
    LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
    
    int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
    {
    	static TCHAR szAppName[] = TEXT ("Hello win");   //以0结尾字符串
    	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.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    	
    	wndclass.lpszMenuName = NULL;
    	wndclass.lpszClassName = NULL;
    
    	if(!RegisterClass(&wndclass))
    	{
    		MessageBox(NULL,TEXT("this program is 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,SW_SHOWNORMAL);
    	UpdateWindow(hwnd);
    
    	while(GetMessage(&msg,hwnd,NULL,NULL))
    	{
    		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 win2008"),-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);
    }

    
    
  • 相关阅读:
    【转】TCP协议的无消息边界问题
    【转】Log4net用法
    【转】微信公众账号 Senparc.Weixin.MP SDK 开发教程 索引
    关于Asp.Net MVC 中 UpdateModel 的未能更新***模型的 解决方案!
    批准加强军队信息安全工作意见
    iOS--开发从入门到精通
    iOS-开发者账号与证书
    iOS--高级技术
    iOS-----App闪退,程序崩溃---解决方案
    iOS-运行时机制
  • 原文地址:https://www.cnblogs.com/persuit/p/5402640.html
Copyright © 2020-2023  润新知