我正在使用 Windows API 创建一个字体对话框,其中包含 C++ 中的字体选择/样式/大小调整
。
我在资源脚本中添加了文本和组合框,但我对如何向组合框添加项目并处理其单击事件感到困惑。我在互联网上搜索但找不到答案。
我的代码是
#include "Resource.h"
#include <windows.h>
#define IDD_DLGFIRST 101
#define IDC_SCROLLBARV 1010
#define COMBOX1 1
#define COMBOX2 2
#define COMBOX3 3
IDD_DLGFIRST DIALOG 200, 200, 300, 200
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Font Color"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Font",10,10,15,80,20
COMBOBOX COMBOX1,10,30,80,100, CBS_SIMPLE | WS_VSCROLL | WS_TABSTOP
LTEXT "Font Style",11,110,15,80,20
COMBOBOX COMBOX2,110,30,80,100, CBS_SIMPLE | WS_VSCROLL | WS_TABSTOP
LTEXT "Font Size",11,210,15,80,20
COMBOBOX COMBOX3,210,30,80,100, CBS_SIMPLE | WS_VSCROLL | WS_TABSTOP
END
最佳答案
您无法通过资源脚本将项目添加到组合框。该脚本只能定义ComboBox 本身及其特性。您需要编写代码来在运行时处理 ComboBox 项目。
例如,在对话框的 WndProc 过程中,处理 WM_INITDIALOG
发送消息CB_ADDSTRING
发送到 ComboBox 的 HWND
的消息,您可以从 Win32 GetDlgItem()
获取该消息功能。
为了处理来自 ComboBox 的点击和其他事件,它们会以 WM_COMMAND
的形式发送到对话框的 WndProc。通知,例如 CBN_SELCHANGE
.
仅供引用,Windows 有自己的内置 Font Dialog Box ,您可以使用 Win32 ChooseFont()
调用它函数,或 MFC CFontDialog
类等
关于c++ - 如何在 C++ 资源脚本中将项目添加到组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48469273/