Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для Windows/Dos > COMBOBOX: не добавляется строка


Автор: 586 8.5.2006, 23:33
Код

.386
.model flat,stdcall
option casemap:none
include windows.inc
include kernel32.inc
includelib kernel32.lib
include user32.inc
includelib user32.lib

MainWndProc    PROTO :DWORD, :DWORD, :DWORD, :DWORD

.data
string    db "test_text", 0

.code
start:

invoke GetModuleHandle, 0
invoke DialogBoxParam, eax, 1000, 0, MainWndProc, 0
invoke ExitProcess, 0

MainWndProc proc hWnd, uMsg, wParam, lParam:DWORD
 .if uMsg==WM_SYSCOMMAND && wParam==SC_CLOSE
  invoke EndDialog, hWnd, 0
 .elseif uMsg==WM_INITDIALOG
  invoke SendDlgItemMessage, hWnd, 100, CB_INITSTORAGE, 0, 256
  invoke SendDlgItemMessage, hWnd, 100, CB_ADDSTRING, 0, offset string
 .endif
 xor eax, eax
 ret
MainWndProc endp
end start


Почему в ComboBox не добавляется строка? 

Автор: rsm 9.5.2006, 09:24
1. Убери у ComboBox стиль CBS_OWNERDRAWFIXED;
2. Сделай ComboBox пошире в высоту;
3. Перечитай справку по WinAPI:
Код
invoke SendDlgItemMessage, hWnd, 100, CB_INITSTORAGE, 0, 256 ; почему предпоследний параметр - 0?!
 

Автор: 586 9.5.2006, 16:33
А как сделать так, чтобы при ПРОКРУТКЕ колёсика мыши значение ComboBox не менялось? 

Автор: rsm 10.5.2006, 08:31
Цитата(586 @  9.5.2006,  18:33 Найти цитируемый пост)
чтобы при ПРОКРУТКЕ колёсика мыши значение ComboBox не менялось?

Убрать с ComboBox фокус. Добавь в окно еще какой-нибудь контрол, запусти программу и нажми Tab - фокус перейдет к другому контролу, ComboBox перестанет быть выделенным и не будет прокручиваться мышью.
 

Автор: 586 11.5.2006, 01:28
Нужно, чтобы активный ComboBox не прокручивался мышью 

Автор: rsm 11.5.2006, 17:42
Цитата(586 @  11.5.2006,  03:28 Найти цитируемый пост)
Нужно, чтобы активный ComboBox не прокручивался мышью

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)