1、準備知識:
1、圖標:(文件格式爲 .ico)
圖標有兩種,分別是大圖標(wc.hIcon)和小圖標(wc.hIconSm)。web
大圖標:任務欄中程序圖標
小圖標:窗口上的圖標
app
圖標文件格式.ioc的轉換:
1.可經過格式轉換軟件,好比格式工廠。
2.在線網站轉換,在線版PDF轉換器svg
2、光標:(靜態光標文件格式.cur)、(動態光標文件格式 .ani)
就是在運行窗口上的光標。
函數
光標文件.cur和.ani的得到:
1.使用Axialis CursorWorkshop軟件能夠本身製做,也可轉換,而後保存便可。
2…可經過其餘格式轉換軟件。網站
2、窗口建立前設計
步驟:
1.添加資源。(如下有詳細操做)
2.加載圖標和光標。(使用LoadCursor函數或LoadImage函數)spa
1.添加資源步驟:
右擊資源文件----添加----資源----添加圖標點擊Icon、添加光標點擊Cursor----而後點導入.net
有幾點說明一下:
1.在添加第一個資源後,會自動生成一個resource.h個頭文件,此時須要添加頭文件 「#includeresource.h」
2.在添加第一個資源後,也會在資源文件裏生成一個.rc的文件,點擊後會有以下圖,也可在這添加資源文件,IDC_CURSOR1,IDC_CURSOR2這些是文件名。
設計
2.加載圖標光標:
經過使用LoadCursor函數或LoadImage函數加載code
// 加載大圖標 wc.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_ICON1); 或wc.hIcon = (HICON)LoadImage(hInstance, (LPCTSTR)IDI_ICON1, IMAGE_ICON, 0, 0, LR_CREATEDIBSECTION); // 加載小圖標 wc.hIconSm = LoadIcon(hInstance, IDI_APPLICATION); 或wc.hIconSm = (HICON)LoadImage(hInstance, (LPCTSTR)IDI_ICON1, IMAGE_ICON, 0, 0, LR_CREATEDIBSECTION); // 加載光標 wc.hCursor = LoadCursor(hInstance, (LPCTSTR)IDC_CURSOR1); 或wc.hCursor = (HICON)LoadImage(hInstance, (LPCTSTR)IDC_CURSOR1, IMAGE_CURSOR, 0, 0, LR_CREATEDIBSECTION);
補充:代碼(LPCTSTR)IDI_ICON1可用MAKEINTRESOURCE(IDI_ICON1)代替。必定記得加上"#includeresource.h"頭文件。xml
窗口標題設計:
窗口標題的設計很簡單,只須要在窗口建立CreateWindowEx函數中設計就行。
hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("Windows"), TEXT("奇怪的大冒險"), // 設計窗口標題 WS_VISIBLE | WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, // 設計窗口大小 NULL, NULL, hInstance, NULL);
3、窗口建立後設置
API函數:
1. 從新指定窗口所屬窗口類的WNDCLASSEX結構體成員的值 :SetClassLong
2. 設置光標:SetCursor
1.SetClassLong函數:圖標、光標、標題等都能改
函數的功能:它會替換存儲空間中指定偏移量處的32位長整型值,或替換指定窗口所屬類的WNDCLASSEX結構(應該是替換這個結構體中的值,並無把結構體給換了)。
DWORD SetClassLong(HWND hWnd, // 窗口句柄及間接給出的窗口所屬的類 int nlndex, // 須要背修改替換的值 LONG dwNewLong) // 新的值 --注意結構類型的轉化 // 實例:修改光標 SetClassLong(hwnd, GCL_HCURSOR , (LONG)LoadCursor(NULL, IDC_CROSS));
nlndex的值 | 說明 |
---|---|
GCL_CBCLSEXTRA | 設置與類相關的尺寸的字節大小。設定該值不改變己分配的額外字節數。 |
GCL_CBWNDEXTRA | 設置與類中的每個窗口相關的尺寸的字節大小。設定該值不改變已分配額外字節數。查看如何進入該內存,參看SetWindowLOng。 |
GCL_HBRBACKGROUND | 替換與類有關的背景刷子的句柄。 |
GCL_HCURSOR | 替換與類有關的光標的句柄。 |
GCL_HICON | 替換與類有關的圖標的句柄。 |
GCL_HMODULE | 替換註冊類的模塊的句柄。 |
GCL_STYLE | 替換窗口類的風格位。 |
GCL_MENUNAME | 替換菜單名字符串的地址。該字符串標識與類有關的菜單資源。 |
GCL_WNDPROC | 替換與窗口類有關的窗口過程的地址。 |
2.SetCursor函數:設置光標
// 函數原型: HCURSOR SetCursor(HCURSOR hCursor);// 光標句柄 // 實例: SetCursor(LoadCursor(NULL, IDC_CROSS));
做者說:
我還有好多未完成的夢,沒有理由停下前進的腳步!
本文同步分享在 博客「戰 勝」(CSDN)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。