Укажите область рисования окон в WINAPI - PullRequest
0 голосов
/ 12 августа 2010

Я использую один сторонний SDK, который получает hwnd (дескриптор окна) и рисует что-то на моем окне. И я хочу указать область рисования окна (слева, справа, сверху, снизу)? Как это можно сделать? Я нашел функцию WINAPI SetWindowRgn, но это не очень хорошо для меня, потому что эта функция определяет всю область окна. Мне нужно указать только область окраски окон.

Ответы [ 2 ]

3 голосов
/ 12 августа 2010

SetWindowRgn () - это именно то, что вам нужно.Вы можете создать свой регион из прямоугольника, используя CreateRectRgn ().Хорошее введение в области окон можно найти здесь .

В качестве альтернативы вы можете изменить не-клиентскую область вашего окна, но я бы не рекомендовал это делать, поскольку оно имеет несколько побочных эффектов..

1 голос
/ 12 августа 2010

Если возможно дать этой библиотеке HDC вместо дескриптора окна - вы должны сделать это.То есть получите чертежный DC для клиентской области вашего окна (GetDC), создайте необходимую область отсечения и установите ее (SelectClipRgn).

В случае, если ваша библиотека настаивает на принятии дескриптора окнаЯ могу предложить следующее решение:

Внутри вашего окна создайте другое дочернее окно, задайте для него соответствующий регион.И передайте дескриптор этого окна вашей библиотеке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...