zoukankan      html  css  js  c++  java
  • Windows程序设计学习(2)

    一个Windows程序的开发步骤

    #include <windows.h>
    //1.窗口类需要一个窗口过程,所以先声明一个窗口过程函数
    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
    
    int WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd )
    {
    	static TCHAR app_name[] = TEXT("HelloWin");
    	
    	//2.注册一个窗口类
    	WNDCLASS wndclass =
    		{
    			CS_HREDRAW | CS_VREDRAW,
    			WndProc,
    			0,
    			0,
    			hInstance,
    			LoadIcon(nullptr, IDI_APPLICATION),
    			LoadCursor(nullptr, IDC_ARROW),
    			(HBRUSH)GetStockObject(WHITE_BRUSH),
    			nullptr,
    			app_name
    		};
    	if(!RegisterClass(&wndclass))
    	{
    		return 0;
    	}
    
    	//3.创建窗口并显示
    	HWND hwnd = CreateWindow(app_name, TEXT("The First Window"),
    							 WS_OVERLAPPEDWINDOW,
    							 CW_USEDEFAULT,
    							 CW_USEDEFAULT,
    							 CW_USEDEFAULT,
    							 CW_USEDEFAULT,
    							 nullptr,
    							 nullptr,
    							 hInstance,
    							 nullptr);
    	ShowWindow(hwnd, nShowCmd);
    	UpdateWindow(hwnd);
    
    	//4.循环消息队列
    	MSG msg; //消息结构
    	while(GetMessage(&msg, nullptr, 0, 0))
    	{
    		TranslateMessage(&msg);//转换某些键盘消息
    		DispatchMessage(&msg); //将消息发送给窗口过程
    	}
    
    	return msg.wParam;
    
    }
    
    //5.窗口过程
    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"), nullptr, SND_FILENAME|SND_ASYNC);
    		return 0;
    	case WM_PAINT:
    		{
    			hdc = BeginPaint(hwnd, &ps);
    			GetClientRect(hwnd, &rect);
    			DrawText(hdc, TEXT("Hello, Windows7!"), -1, &rect, DT_CENTER | DT_SINGLELINE | DT_VCENTER);
    			EndPaint(hwnd, &ps);
    			return 0;
    		}
    	case WM_DESTROY:
    		PostQuitMessage(0);
    		return 0;
    	}
    
    	return DefWindowProc(hwnd, message, wParam, lParam);
    }
    
  • 相关阅读:
    margin问题
    IE6里面子集尺寸大的会把父亲撑大
    第一个元素<flout>写了,想在他的旁边加一个元素.IE6会出现缝隙. 不要用margin撑开,要用flout
    兼容性,float
    HTML5的兼容问题以及调用js文件的方法
    表单
    表格的编写,课程表
    SmartThreadPool
    C# 多线程的等待所有线程结束的一个问题
    DataTable保存与读取 stream
  • 原文地址:https://www.cnblogs.com/neking/p/2518734.html
Copyright © 2011-2022 走看看