我正在用c ++创建一个winAPI应用程序我在预览窗格中有一张照片,我想在点击它们时创建两个按钮NEXT和PREVIOUS我将转到下一页。
你能否告诉我如何在c ++中做到这一点?
我是否需要使用QT libraray,或者可以使用WinAPI的内置函数来完成 -
HWND hwndButton1 = CreateWindow(L"BUTTON",L"NEXT",WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,550,800,100,30,m_hwndPreview,(HMENU)buttonid1,(HINSTANCE)GetWindowLong(m_hwndPreview, -6),NULL);
HWND hwndButton2 = CreateWindow(L"BUTTON",L"PREVIOUS",WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,650,800,100,30,m_hwndPreview,(HMENU)buttonid2,(HINSTANCE)GetWindowLong(m_hwndPreview, -6),NULL);
然后使用WM_COMMAND进行按钮点击。
我说得对吗?
我只是希望我的API应用程序像.pdf扩展文件一样工作......就像在PDF文件中我们有向上和向下箭头一样点击它们我们可以转到下一页..在winAPIc ++我找不到任何这样的箭头功能..请告诉我是否有任何这样的箭头向上/向下功能进入下一页(因为我对使用createwindow函数创建NEXT和PREVIOUS按钮非常不感兴趣..看起来很奇怪。)
答案 0 :(得分:1)
大多数按钮(和其他控件)都是使用资源编辑器创建的,将控件放在对话框模板或工具栏资源上。如果这样做,Windows将在您创建对话框或工具栏时创建按钮。此方法是首选,因为Windows将根据使用的屏幕设置调整按钮的大小。
如果你不能这样做,你必须像你一样使用CreateWindow。
答案 1 :(得分:1)
您还没有提到您正在使用的工具,因此我们不知道您是否有资源编辑器。您应该在适合该工具的论坛中进行研究。如果您认为编写一行代码来创建按钮“非常复杂”,那么您需要一个更好的工具。
如果您不希望按钮出现在图片的顶部,那么您需要另一个地方放置它们。一种常见的可能性是工具栏。它是主窗口顶部或底部按钮的条带:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb760435(v=vs.85).aspx
使用资源编辑器,您可以在按钮上绘制箭头。如果没有资源编辑器,您可以将按钮文本设置为unicode箭头:
SetWindowText(hwndButton1,L“\ x25bc”); //向下箭头,使用25b2表示向上箭头
答案 2 :(得分:1)
最后它完成了..我创建的按钮既不使用Qt也不使用任何createWindowEx ..最好和最简单的方法是资源编辑器...只需在对话框上放一些按钮并使用IDD_MAINDIALOG(在我的情况下) )
m_hwndPreview = CreateDialogParam( g_hInst,MAKEINTRESOURCE(IDD_MAINDIALOG), m_hwndParent,(DLGPROC)DialogProc, (LPARAM)this);
然后
BOOL CALLBACK AMEPreviewHandler::DialogProc(HWND m_hwndPreview, UINT Umsg, WPARAM wParam, LPARAM lParam)
{
switch(Umsg) // handle these messages
{ .........
}
....
}
那就完成了。非常简单的任务。