主要是爲了創建一個體積超小的windows程序,然後就搜索win32 tutorial,就搜到了這個
http://winprog.org/tutorial/zh/start_cn.html
在不引用其他庫的情況下,很完美,寫個什麼小工具超級好。
開始
- vs2017 直接新建一個空的C++項目
- 直接按照步驟來就好,貌似創建一個窗體小工具的話,直接拖控件就可以了。😮納尼?win32還可以拖控件?
- 沒錯,確實可以,vs2017,資源文件夾裏添加資源,選對話框,直接拖吧。(萬萬沒想到還有這種操作,我以爲都是一句一句代碼生成的😂)
加載rc文件的模板
#include <windows.h>
#include "resource.h"
bool t = TRUE;
BOOL CALLBACK DlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
switch (Message)
{
case WM_INITDIALOG:
SetDlgItemText(hwnd, IDC_EDIT2, "試一下");
SetDlgItemText(hwnd, IDC_EDIT3, "試一下2");
break;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
t = !t;
SetDlgItemText(hwnd, IDC_EDIT2, t == 1 ? "OK" : "Cancel");
break;
case IDCANCEL:
t = !t;
SetDlgItemText(hwnd, IDC_EDIT3, t == 1 ? "OK" : "Cancel");
break;
default:
break;
}
break;
case WM_CLOSE:
EndDialog(hwnd, 0);
default:
return FALSE;
break;
}
return TRUE;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
return DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, DlgProc);
}
拖控件小技巧
其實就是一個C#閹割版的工具箱,不過有個類似於ps參考線的功能,我覺得挺好的。
爲控件換現代化主題
就是藍色的高亮,發現默認的太醜,看別人的win32怎麼這麼好看呢,於是搜到了這個
https://docs.microsoft.com/zh-cn/windows/win32/controls/cookbook-overview?redirectedfrom=MSDN#turning-off-visual-styles
在代碼裏添加這一行就可以換windows自帶的“現代”主題啦
#pragma comment(linker,"\"/manifestdependency:type='win32' \
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
設置按鈕字體
直接發消息,具體用法,vs2017裏,雙擊CreateFont, F1
HFONT hFont = CreateFont(14, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, "幼圓");
::SendMessage(hwndProcess, WM_SETFONT, (WPARAM)hFont, 1); //設置控件字體
小問題
有時候,找不到IDD,可以重新打開resource.h看看再不在,rc文件有時候會不更新,重新打開試試。