Win32使用Windows公共控件库创建工具条
生活随笔
收集整理的這篇文章主要介紹了
Win32使用Windows公共控件库创建工具条
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Win32程序創建工具條,需要使用Windows公共控件庫,是另一個DLL;本身Win32 API 是在系統自帶的3個DLL;
Win7,CFree 5.0;運行結果;
引入lib文件的設置如下;
如果不在工程設置中引入;則對應的C代碼為:#pragma comment (lib,"Comctl32.lib");
如果找到如下CFree安裝目錄中看上去是庫文件的,則構建出錯;
需要包含頭文件?#include <commctrl.h>,CFree自帶了;
dll應該沒有;在CFree目錄下搜索不到;自己下;如下圖;comctl32.dll這個才能用;COMMCTRL.DLL這個不行;
工程如下;
碼:
#include <windows.h> #include <commctrl.h> #include "resource.h"LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);HINSTANCE hInst; TCHAR szClassName[] = TEXT("cmtlDemo"); HWND hToolBar;int WINAPI WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nFunsterStil) {HWND hwnd;MSG messages;WNDCLASSEX wincl;hInst = hThisInstance;wincl.hInstance = hThisInstance;wincl.lpszClassName = szClassName;wincl.lpfnWndProc = WindowProcedure;wincl.style = CS_DBLCLKS;wincl.cbSize = sizeof (WNDCLASSEX);wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);wincl.hCursor = LoadCursor (NULL, IDC_ARROW);wincl.lpszMenuName = MAKEINTRESOURCE (IDC_CMTLDEMO);wincl.cbClsExtra = 0;wincl.cbWndExtra = 0;wincl.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);if (!RegisterClassEx (&wincl))return 0;hwnd = CreateWindowEx (0,szClassName,TEXT("cmtlDemo"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,300,200,HWND_DESKTOP,NULL,hThisInstance,NULL);ShowWindow (hwnd, nFunsterStil);while (GetMessage (&messages, NULL, 0, 0)){TranslateMessage(&messages);DispatchMessage(&messages);}return messages.wParam; }LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {PAINTSTRUCT ps;HDC hdc;RECT rt;int ret;switch (message){case WM_COMMAND:switch (LOWORD(wParam)){case IDM_ABOUT:MessageBox (hwnd, TEXT ("cmtlDemo v1.0\nCopyright (C) 2020\n by bo"),TEXT ("cmtlDemo"), MB_OK | MB_ICONINFORMATION);break;case IDM_EXIT:DestroyWindow(hwnd);break;default:return DefWindowProc(hwnd, message, wParam, lParam); }break;case WM_CREATE:hToolBar = CreateWindowEx(NULL, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | TBSTYLE_WRAPABLE, 0, 0, 0, 0,hwnd, NULL, hInst, NULL);break;case WM_PAINT:hdc = BeginPaint(hwnd, &ps); GetClientRect(hwnd, &rt); EndPaint(hwnd, &ps);break;case WM_DESTROY:PostQuitMessage (0);break;default:return DefWindowProc (hwnd, message, wParam, lParam);}return 0; }資源文件和頭文件;
#include "resource.h" #include <windows.h>/ // // Menu //IDC_CMTLDEMO MENU BEGINPOPUP "&File"BEGINMENUITEM "E&xit", IDM_EXITENDPOPUP "&Help"BEGINMENUITEM "&About ...", IDM_ABOUTEND END #define IDM_EXIT 10001 #define IDM_ABOUT 10002#define IDC_CMTLDEMO 10101 #define IDD_ABOUTBOX 10102程序只使用了一句代碼來創建工具條;在WM_CREATE消息處理分支里;
總結
以上是生活随笔為你收集整理的Win32使用Windows公共控件库创建工具条的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VC++把输入的字符转换为十六进制
- 下一篇: Win32 树视图控件的基本使用