ti_ua: (dark)
[personal profile] ti_ua
Как всегда пару раз трахнув себя нашел как сделать на WINAPI кнопку которая не выделяется.
Без манифестов.

Стоило мне это довольно жестких душевных терзаний, решение я подозреваю не совсем правильное, но работает.

Итак:

1. Делаем стиль кнопке WS_CHILD | WS_VISIBLE | BS_NOTIFY (тут нужно заметить, что само сообщение WM_NOTIFY не используется)

2. В обработке события WM_COMMAND для notify-кода BN_SETFOCUS шлем окну

SendMessage( (HWND) getHandle(), WM_UPDATEUISTATE, MAKEWPARAM(UIS_SET, UISF_HIDEFOCUS), 0);


Причем на обработку сообщения WM_CHANGEUISTATE дружно забиваем.
Ну и конечно Выражение MAKEWPARAM(UIS_SET, UISF_HIDEFOCUS) означающее ни что иное как "устиновить хайдфокус" довольно порадовало :)

Date: 2008-10-20 07:11 pm (UTC)
From: [identity profile] r-a-n-d-0-m.livejournal.com
а нафиг? =) для удобства тех, у кого нет мышы? =)

Date: 2008-10-20 07:14 pm (UTC)
From: [identity profile] ti-ua.livejournal.com
Чтобы сделать свою кнопочку с крестиком в уголке формы :)

Date: 2008-10-20 07:16 pm (UTC)
From: [identity profile] r-a-n-d-0-m.livejournal.com
делать кнопочки кнопочками - не наш метод, надо делать кнопочки картиночками...
а чё, стандартный крестик не подошёл?

Date: 2008-10-20 07:26 pm (UTC)
From: [identity profile] ti-ua.livejournal.com
Делать кнопочки картиночками предолагает делать 4 картиночки и отлавливать кучи сообщений. Согласись предложенный метод проще :)

Не подошел тем, что стандартный заголовок с кнопочками предполагает стандартную рамочку, а мои окна без рамок. Это раз.
Ну и два - нужна возможность убирать заголовки в некоторых уловиях. А для этого либо делать свой заголовок, либо менять стили окон. При изменении стилей существующих окон происходят довольно жесткие лаги, например неправильно вычисляется клиентская область окна, появляются области, которые не апдейтятся.
Поэтому нужен свой заголовок со своей кнопочкой. Тем более что этот заголовок может быть не только сверху, но и например сбоку.

Date: 2008-10-20 07:38 pm (UTC)
From: [identity profile] r-a-n-d-0-m.livejournal.com
а зачем столько извратов? пишешь убийцу квипа?

Date: 2008-10-20 07:40 pm (UTC)
From: [identity profile] ti-ua.livejournal.com
Скажем так, это уже предмет коммерческой тайны :)

Profile

ti_ua: (Default)
ti_ua

June 2019

S M T W T F S
      1
2345678
9101112131415
16171819202122
23 242526 272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 17th, 2025 07:49 am
Powered by Dreamwidth Studios