Следующая и предыдущая кнопка управления в WinAPI для перехода на следующую страницу (C++)
Я создаю приложение WinAPI на C++. У меня есть фотография на панели предварительного просмотра, и я хочу создать две кнопки СЛЕДУЮЩАЯ и ПРЕДЫДУЩАЯ, щелкнув по ним, я перейду на следующую страницу.
Не могли бы вы дать мне идею, как это сделать в 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++ я не нашел такой стрелки функция... скажите, пожалуйста, есть ли такая функция стрелки вверх / вниз, чтобы перейти на следующую страницу (потому что я очень менее заинтересован в создании кнопки NEXT и PREVIOUS с использованием функции createwindow. Это выглядит странно).
3 ответа
Вы не упомянули, какие инструменты вы используете, поэтому мы не знаем, есть ли у вас редактор ресурсов. Вы должны исследовать это на форуме, подходящем для инструментов. Если вы думаете, что написать одну строку кода для создания кнопки "очень сложно", то вам нужен лучший инструмент.
Если вы не хотите, чтобы кнопки появлялись в верхней части рисунка, вам нужно другое место для их размещения. Одна из распространенных возможностей - это панель инструментов. Это полоска для кнопок вдоль верхней или нижней части главного окна:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb760435(v=vs.85).aspx
С помощью редактора ресурсов вы можете нарисовать стрелку на кнопке. Без редактора ресурсов вы можете установить текст кнопки на юникодную стрелку:
SetWindowText (hwndButton1, L "\ x25bc"); // стрелка вниз, используйте 25b2 для стрелки вверх
Большинство кнопок (и других элементов управления) создаются с помощью редактора ресурсов, размещая элементы управления в шаблоне диалога или на панели инструментов. Если вы сделаете это, Windows создаст кнопки при создании диалогового окна или панели инструментов. Этот метод является наиболее предпочтительным, поскольку Windows будет регулировать размер кнопок в соответствии с используемыми настройками экрана.
Если вы не можете сделать это, вы должны использовать CreateWindow, как вы делаете.
Наконец-то все готово... Я создал кнопки ни с помощью 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
{ .........
}
....
}
и это сделано. Очень легкая задача