Win32api編程

主要是爲了創建一個體積超小的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文件有時候會不更新,重新打開試試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章