Форум: "WinAPI";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];
Внизсоздание кнопки Найти похожие ветки
← →
Narayan © (2004-04-15 21:39) [0]создал кнопку
CreateWindow("BUTTON", "OK", WS_VISIBLE or WS_CHILD or BS_DEFPUSHBUTTON,50,50,70,24,Form1.Handle,0,HINSTANCE,nil);
Как сделать чтоб при нажатии что-то выполнялось?
← →
Rouse_ © (2004-04-16 00:05) [1]Вот к примеру (правда создание кнопки идет из ресурса, но происходит создание ListBox)
Ресурс:<CUT 1020.rc>
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
10 DIALOGEX 0, 0, 130, 60
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE |
WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_TOPMOST
CAPTION "Test ComboBox Application"
FONT 8, "Helv", 0, 0
BEGIN
PUSHBUTTON "Close", 100 ,71,38,53,15
PUSHBUTTON "Add string", 105 ,5,38,53,15
LTEXT "Add string to ComboBox:",IDC_STATIC,7,7,107,10
END
<CUT>
Само приложение:program Project1;
{$R "1020.res" "1020.rc"}
uses
Windows,
Messages;
var
_Msg : TMsg;
hwnd, combo : Integer;
function WndFunc(Wnd, Msg: DWord; wParam, lParam: integer): integer; stdcall;
var s:String;
i:Integer;
begin
case msg of
wm_destroy :
Begin
postquitmessage(0);
exit;
Result:=0;
End;
WM_QUIT :
Begin
postquitmessage(0);
exit;
Result:=0;
End;
wm_command :
Begin
case loword(wParam) of
100 : //Клик по кнопке закрытия
case hiWord(wParam) of
BN_CLICKED :
Begin
postquitmessage(0);
exit;
Result:=0;
End;
end;
105 : //Клик по кнопке добавления текста
case hiWord(wParam) of
BN_CLICKED :
Begin
s:="Test string"; //Добавляем исполльзуя ХЭНДЛ!!! комбобокса
SendMessage(combo,CB_ADDSTRING ,0,Longint(@s[1]));
End;
end;
200: //Ловим сообщение на ID !!! комбобокса
case hiWord(wParam) of
CBN_DROPDOWN : //Список раскрылся
begin
Result := 0;
end;
CBN_SELCHANGE : //Выбран определенный пункт
begin
Result := 0;
end;
end;
end;
end;
end;
Result := 0
end;
begin
hwnd := CreateDialog(hInstance,MAKEINTRESOURCE(10),0,@WndFunc);
combo := CreateWindow("COMBOBOX", "", CBS_DROPDOWN or WS_CHILD or WS_VISIBLE, 7, 25, 180, 54, hwnd, 200, hInstance, NiL);
//combo - это его хэндл при помощи него мы работает с комбо //200 - Это его ID на него приходят сообщения
while GetMessage(_Msg, 0, 0, 0) do
begin
TranslateMessage(_Msg);
DispatchMessage(_Msg);
end;
end.
Все интересующие тебя места отмечены жирным...
← →
DVM © (2004-04-16 11:16) [2]
> Как сделать чтоб при нажатии что-то выполнялось?
Родительскому окну будут приходить сообщения WM_COMMAND.
Можно еще переопределить оконную процедуру кнопки и в ней ловить сообщения мыши.
← →
Narayan © (2004-04-16 14:55) [3]2 Rouse_
большое спасибо
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c