Я очень новичок в программировании на win32api. У меня есть 3 вопроса.
Как изменить цвет фона в родительском окне. я сделал это следующим образом, но это не работает
wClass.hbrBackground=(HBRUSH)(RGB(255,255,255));
Второй вопрос, я использую, чтобы добавить текст в окне следующим образом. текст выделен жирным шрифтом и цветом фона. Я хочу, чтобы текст был обычным и без фона.
PAINTSTRUCT ps;
HDC hDC;
char szBuffer[]="Hello, World!";
hDC=BeginPaint(hWnd,&ps);
TextOut(hDC,10,10,szBuffer,strlen(szBuffer));
Третий вопрос — как добавить групповые блоки в родительское окно. Я искал это в Интернете, но это было описано, как добавить групповые блоки в диалоговых окнах, используя ресурсы.
Пожалуйста, помогите мне с этим …
Я предполагаю, что структура класса требует дескриптора кисти, а не самого значения цвета (но я не уверен). Что-то вроде этого:
wClass.hbrBackground=(HBRUSH)(CreateSolidBrush(RGB(255,255,255)));
Чтобы сделать фон текста прозрачным, используйте специальную функцию WinAPI, SetBkMode(TRANSPARENT)
; (Oof, потратьте некоторое время, чтобы запомнить его имя :)).
В большинстве задач будет гораздо лучше создать ресурс диалога и использовать его как обычное окно (рисовать что-то в нем, помещать простые окна, в котором вы рисуете и т. Д.), Чем брать обычное окно и пытаться добавить в него элементы управления диалогом. Это стало обычной практикой со времен WinForms, а затем и WPF — каждое окно в них — это «форма», в которую можно добавлять элементы управления, рисовать в ней и так далее.
Я пытаюсь вспомнить, вставил ли Microsoft код для очистки клиентской области. Я знаю, что, как минимум, вы можете получить клиентский прямоугольник, а затем использовать его для создания команды drawRect () для всей клиентской области. Вам также может понадобиться перехватить команду, чтобы стереть фон