winAPI中的下一个和上一个控制按钮转到下一页(c ++)

时间:2013-07-15 14:08:38

标签: qt winapi button buttonclick back-button-control

我正在用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按钮非常不感兴趣..看起来很奇怪。)

3 个答案:

答案 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
        {  .........
}
....
}

那就完成了。非常简单的任务。