win32視窗程式 -----1、載入資源圖示
阿新 • • 發佈:2019-01-22
概要:
一、視窗的建立過程主要包含5個步驟
1、設計視窗
2、註冊視窗
3、建立視窗
4、顯示視窗
5、訊息迴圈
二、載入圖示資源的語句如下:
ex.hIcon = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON2));
ex.hIconSm = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));
ex.hCursor = LoadCursor(hInstance,MAKEINTRESOURCE(IDC_CURSOR1));
//如果 ex.hIcon; ex.hIconSm; ex.hCursor;賦值為NULL則選擇預設的圖示
三、新增資源的步驟
資原始檔————右鍵屬性_———-新增——-資原始檔。。。。。。
完整程式碼如下
#include <Windows.h>
#include "resource.h"
int i=0;
/*LRESULT 就是longresult,L表明為long,
result表明這個函式返回值是某個結果
CALLBACK表明為回撥函式
*/
LRESULT CALLBACK MyWNDPROC(HWND, UINT, WPARAM, LPARAM); //訊息處理函式的宣告
int CALLBACK WinMain( HINSTANCE hInstance, //當前應用程式例項的控制代碼
HINSTANCE hPrevInstance, //應用程式前一個例項的控制代碼
LPSTR lpCmdLine, //命令列引數
int nCmdShow) //決定這個視窗顯示方式的引數
{ HWND hWnd;
MSG msg;
// HDC hdc;
WNDCLASSEX ex; // WNDCLASSEX是結構體 該語句定義了一個為ex的 結構體
ex.style = CS_HREDRAW | CS_VREDRAW; // 視窗水平重新整理、垂直重新整理
ex.cbSize = sizeof(ex); //ex的大小
ex.cbClsExtra = 0; //存放次結構體的一些附加資訊,通常為0
ex.cbWndExtra = 0; //這段空間用來存放此視窗特有的資料 ,通常為0
ex.hInstance = hInstance; //應用程式控制代碼,由主函式傳遞進來
ex.hIcon= LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON2));
ex.hIconSm = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));
ex.hCursor =LoadCursor(hInstance,MAKEINTRESOURCE(IDC_CURSOR1));
ex.lpszMenuName = NULL;
ex.hbrBackground= CreateSolidBrush(RGB(171,171,226));
// 指定背景畫刷控制代碼
ex.lpszClassName= "123"; //指定視窗的名字,用於CreateWindow()函式
ex.lpfnWndProc =MyWNDPROC;//lpfnWndProc是指向函式(MYWNDPROC())的指標,
//2.註冊
RegisterClassEx(&ex);
//3.建立
hWnd=CreateWindow(ex.lpszClassName,"Hello world!!!",WS_OVERLAPPEDWINDOW,100,100,
600,600,NULL,NULL,hInstance,NULL);
//4.顯示
ShowWindow(hWnd,nCmdShow) ;
//5.訊息迴圈
while(GetMessage(&msg,NULL,0,0))
{ //翻譯訊息
TranslateMessage(&msg) ;
//分發訊息
DispatchMessage(&msg) ;
}
}
LRESULT CALLBACK MyWNDPROC(HWND hWnd,UINT Msg, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
switch (Msg)
{
case WM_CLOSE: //點選視窗右上角關閉鍵的訊息
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd,Msg,wParam,lParam);
}
執行結果如下: