· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› проблема с иконизированной кнопкой

Посл.отвђт Сообщенiе


Дата: Сен 17, 2004 09:34:08

Проблема состоит в следующем: при нажатии на иконизированную кнопку - иконка исчезает. Что это может быть?

Иконку вставляю след. образом:
invoke CreateWindowEx,NULL,offset ButtonClass,NULL, BS_ICON or WS_CHILD or WS_VISIBLE,
75,150,24,23,hWnd,IDB_BUTTON,hInstance,NULL
mov hButton,eax

invoke LoadImage,hInstance,ICON_B1,IMAGE_ICON,16,16,LR_DEFAULTCOLOR
invoke SendMessage,hButton,BM_SETIMAGE,IMAGE_ICON,eax

И еще мож кто обьяснит почему при создании диалогового окна через DialogBoxParam, с кнопкой(BS_ICON), при попытке вставить в WM_INITDIALOG иконку в след. образом:

invoke GetDlgItem,IDB_BUTTON,hDlg
mov hButton,eax
invoke LoadImage,hInstance,ICON_B1,IMAGE_ICON,16,16,LR_DEFAULTCOLOR
invoke SendMessage,hButton,BM_SETIMAGE,IMAGE_ICON,eax

Иконка не вставляется. Тот же код на C работает без проблем.


Дата: Сен 17, 2004 10:15:40

Да, и ещё подскажите. Как создать кнопку содержащую и иконку и текст?


Дата: Сен 17, 2004 11:03:41

Привет...всех

Да дуиаю, что Я понял Вашу проблему...

Вы забыл класть LR_LOADFROMFILE на параметре fuLoad т.е последный параметр.

Думаю это этот...если нет не вижу другую вещь...

Ваша иконка -- на ressource file ? Если да не нужно класть этот параметр т.е LR_LOADFROMFILE...

Можеть быть Вы использовалы несколько разов эту икону итак попробуйте класть LR_SHARED с OR на последним параметре.

Желаю хорощих успехов.

Ваш Друг.

С уважением,

Gerard ( Жерар ).
-----------------


Дата: Сен 17, 2004 11:18:48

Ещё одна вещь...

Для хорошых советов...

http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/butt ons/buttons.asp

Здесь Вы смогли бы находить советов для структуры Button...
Желаю хорощих успехов.

Ваш Друг.

С уважением,

Gerard ( Жерар ).
-----------------


Дата: Сен 17, 2004 14:18:35

Castor „Тот же код на C работает без проблем.“

Неправильно передаёшь параметры в GetDlgItem .
Посмотри в папку \Example2\Bmbutton\ (кажеться с масмом идёт) там то , что тебе нужно .


Дата: Сен 17, 2004 15:23:29 · Поправил: Castor

bogrus, спасибо за совет, но там я уже был. И кнопки создаюся через CreateWindowEx, а уменя другой случай (второй вопрос).
Да, и ты прав насчет:
Неправильно передаёшь параметры в GetDlgItem
Описался пока здесь набивал, в исходнике же все правильно:
invoke GetDlgItem,hDlg,IDB_BUTTON


Дата: Сен 17, 2004 15:34:14

Пожулуйста прегратйте написать < ; места < ;..
Ваш Друг.

С уважением,

Gerard ( Жерар ).
-----------------


Дата: Сен 18, 2004 08:20:27 · Поправил: shoo

Привет! я использовал твой код один в один (только координаты поменял) - все работает. чтобы кнопке в диалоге можно было влепить иконку - у нее должен быть стиль BS_ICON, который может быть и на ходу влепить можно через BM_SETSTYLE мессагу. а как сделать чтоб и иконка и текст - честно говоря не знаю (сам такой ;) (чуть поправлено)

я еще подумал - наверное, нужно или битмап в памяти рисовать, потом присваивать, или самому отрисовывать кнопку каждый раз (OWNDRAW вроде - ща не помню точно ;)


Дата: Сен 18, 2004 09:00:36

о! а пример мой пропал :( ниче - прилепим ;)

1591771505__iconbutton.zip


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.042