Top.Mail.Ru
Ответы
Аватар пользователя
8лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Стиль для ToolBar. Чтобы его можно было передвигать по форме - C++ WinAPI

// Hello1.cpp
#include
#include

#pragma comment (lib, "comctl32.lib")

HWND hMainWnd;
HWND hWndToolBar;

#define ID_TOOLBAR 201
#define IDC_TB_COMBOBOX 202
#define NUM_BUTTONS 15
#define SEPARATOR_WIDTH 10
#define COMBO_SPACE_WIDTH 50
#define COMBO_SPACE_HEIGHT 100
#define ID_SEP 10000
#define IDR_XY 102

#define ID_CUT 0
#define ID_COPY 1
#define ID_PASTE 2
#define ID_UNDO 3
#define ID_REDOW 4
#define ID_DELETE 5
#define ID_FILE_NEW 6
#define ID_FILE_OPEN 7
#define ID_FILE_SAVE 8
#define ID_PRINT_PRE 9
#define ID_PROPERTIES 10
#define ID_HELP 11
#define ID_FIND 12
#define ID_REPLACE 13
#define ID_PRINT 14
TBBUTTON tbb[] = {
{STD_CUT, ID_CUT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
{STD_COPY, ID_COPY, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
{STD_PASTE, ID_PASTE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
{STD_UNDO, ID_UNDO, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
{STD_REDOW, ID_REDOW, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
{STD_DELETE, ID_DELETE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
{STD_FILENEW, ID_FILE_NEW, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
{STD_FILEOPEN, ID_FILE_OPEN, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
{STD_FILESAVE, ID_FILE_SAVE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
{STD_PRINTPRE, ID_PRINT_PRE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
{STD_PROPERTIES, ID_PROPERTIES, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
{STD_HELP, ID_HELP, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
{STD_FIND, ID_FIND, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
{STD_REPLACE, ID_REPLACE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
{STD_PRINT, ID_PRINT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, 0},
};

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
///////////////////////////////////////////////////////////////////////////////////////////////
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, int nCmdShow)
{
char szClassName[] = "MyClass";
MSG msg;
WNDCLASSEX wc;
wc.cbSize = sizeof(wc);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = szClassName;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

// Регистрируем класс окна
if (!RegisterClassEx(&wc)) {
MessageBox(NULL, "Cannot register class", "Error", MB_OK);
return 0;
}

// Создаем основное окно приложения
hMainWnd = CreateWindow(
szClassName, "Application", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,
(HWND)NULL, (HMENU)NULL,
(HINSTANCE)hInstance, NULL
);

if (!hMainWnd) {
MessageBox(NULL, "Cannot create main window", "Error", MB_OK);
return 0;
}

// Показываем наше окно
ShowWindow(hMainWnd, nCmdShow);

while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_CREATE:
hWndToolBar = CreateToolbarEx(hWnd, WS_CHILD | WS_VISIBLE | TBSTYLE_WRAPABLE,

По дате
По рейтингу
Аватар пользователя
Мастер
7лет

как с вами связаться с автором вопроса

Аватар пользователя
Высший разум
8лет