【发布时间】:2014-05-05 03:47:50
【问题描述】:
我正在尝试在我的 Win32 DialogBox 应用程序中使用属性表,以便我可以先获取用户输入,将其应用于我的类,然后使用该用户输入的规范运行程序。
属性页看起来不错,但我不确定我是否弄错了。
无论如何,我正在尝试实施它,但遇到了一些麻烦。我阅读了文档,但仍然没有得到。
我已经设法使属性页(其中 2 个)第一页有一个编辑框和几个组合框,其中包括确定、取消和禁用的应用按钮。我想做的是..
A.当我将 int 添加到编辑框时启用应用按钮
B.弄清楚如何将这些数据放入变量中。
我知道它是如何与我的 DialogBox 窗口一起工作的。对于我放入的所有 IDC_ 内容,我都有 WM_Command。但是属性页,我不知道它的IDC是什么,也不知道如何调用我放入的EDIT框和列表框。或者如何让它识别它们已被用于启用应用按钮。
这是我的属性页设置方法
void propertyPages(HINSTANCE hInstance){
memset(m_psp, 0, sizeof(m_psp));
memset(&m_PropSheet, 0, sizeof(m_PropSheet));
m_psp[0].dwSize = sizeof(PROPSHEETPAGE);
m_psp[0].dwFlags = PSH_WIZARD;
m_psp[0].hInstance = hInstance;
m_psp[0].pszTemplate = (LPCWSTR) IDD_PROPPAGE_LARGE;
m_psp[0].pszTitle = L"Champ 1 Scenario";
m_psp[1].dwSize = sizeof(PROPSHEETPAGE);
m_psp[1].dwFlags = PSP_USETITLE;
m_psp[1].hInstance = hInstance;
m_psp[1].pszTemplate = (LPCWSTR) IDD_PROPPAGE_LARGE1;
m_psp[1].pszTitle = L"Champ 2 Scenario";
m_PropSheet.dwSize = sizeof(PROPSHEETHEADER);
m_PropSheet.dwFlags = PSH_PROPSHEETPAGE;
m_PropSheet.hInstance = hInstance;
m_PropSheet.pszCaption = L"Champion Level/Runes/Masteries";
m_PropSheet.nPages = 2;
m_PropSheet.nStartPage = 0;
m_PropSheet.ppsp = (LPCPROPSHEETPAGE) m_psp;
//SendMessage(GetParent(hDlg), PSM_CHANGED, IDD_PROPPAGE_LARGE, 0);
//PropSheet_Changed(PROPSHEETPAGE,IDD_PROPPAGE_LARGE);
PropertySheet(&m_PropSheet);
}
我先在
中调用INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
有任何提示、技巧、指示或建议吗?也许是在主应用程序启动之前获取用户数据的最佳方式?我发现由用户设置值很棘手。
【问题讨论】:
标签: c++ visual-studio winapi properties