Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Вниз

Подскажите адреса FAQ   Найти похожие ветки 

 
trotski   (2002-12-24 22:33) [0]

Скачал удивительный WinAPI help, многому научился. Сделал прогу на API, всего 8кб!!! Единственный вопрос - где почитать про то, как клепать кнопки и тп - ведь это тоже своего рода окна?


 
Cobalt   (2002-12-25 00:20) [1]

Все в нем же - откройте вкладку "Содержание". Там, к сожалению, не по алфавиту...так что будтье внимательнее.


 
trotski   (2002-12-25 20:42) [2]

Если не затруднит, поподробнее


 
Rouse_   (2002-12-25 21:25) [3]

В WindowsSDC из хелпа Delphi

Желаю успехов


 
trotski   (2002-12-26 22:59) [4]

Сделал через CreateWindowEx, класс Button, в качестве стиля bs_notify. Не работает. В хелпе ничего не нашел. Помогите разобраться пожалуйста


 
Rouse_   (2002-12-27 00:13) [5]

Вот держи, на скорую руку вырезал

program testwindow;

uses
Windows,
Messages;

var
WinClass: TWndClassA;
Inst, Handle, Button1, Label1, Edit1: Integer;
Msg: TMsg;
hFont: Integer;

{ Checks if typed password is "Amigreen" and shows Message }
procedure CheckPassword;
var
Textlength: Integer;
Text: PChar;
begin
TextLength := GetWindowTextLength(Edit1);
if TextLength = 8 then
begin
GetMem(Text, TextLength + 1);
GetWindowText(Edit1, Text, TextLength + 1);
if Text = "Amigreen" then
begin
MessageBoxA(Handle, "Password is correct.", "Password check", MB_OK);
FreeMem(Text, TextLength + 1);
Exit;
end;
end;
MessageBoxA(Handle, "Password is incorrect.", "Password check", MB_OK);
end;

{ Custom WindowProc function }
function WindowProc(hWnd, uMsg, wParam, lParam: Integer): Integer; stdcall;
begin
Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
{ Checks for messages }
if (lParam = Button1) and (uMsg = WM_COMMAND) then
CheckPassword;
if uMsg = WM_DESTROY then
Halt;
end;

begin
{ ** Register Custom WndClass ** }
Inst := hInstance;
with WinClass do
begin
style := CS_CLASSDC or CS_PARENTDC;
lpfnWndProc := @WindowProc;
hInstance := Inst;
hbrBackground := color_btnface + 1;
lpszClassname := "AG_TESTWINDOW";
hCursor := LoadCursor(0, IDC_ARROW);
end; { with }
RegisterClass(WinClass);

{ ** Create Main Window ** }
Handle := CreateWindowEx(WS_EX_WINDOWEDGE, "AG_TESTWINDOW", "Amigreen TestWindow 1.00",
WS_VISIBLE or WS_SIZEBOX or WS_CAPTION or WS_SYSMENU,
363, 278, 305, 65, 0, 0, Inst, nil);
{ ** Create a button ** }
Button1 := CreateWindow("Button", "OK", WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or BS_TEXT,
216, 8, 75, 25, handle, 0, Inst, nil);
{ ** Create a label (static) ** }
Label1 := Createwindow("Static", "", WS_VISIBLE or WS_CHILD or SS_LEFT,
8, 12, 76, 13, Handle, 0, Inst, nil);

{ ** Create an edit field ** }
Edit1 := CreateWindowEx(WS_EX_CLIENTEDGE, "Edit", "", WS_CHILD or WS_VISIBLE or
WS_BORDER or ES_PASSWORD, 88, 8, 121, 21, Handle, 0, Inst, nil);

{ ** Create Font Handle ** }
hFont := CreateFont(-11, 0, 0, 0, 400, 0, 0, 0, DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
DEFAULT_PITCH or FF_DONTCARE, "MS Sans Serif");

{ Change fonts }
if hFont <> 0 then
begin
SendMessage(Button1, WM_SETFONT, hFont, 0);
SendMessage(Label1, WM_SETFONT, hFont, 0);
SendMessage(Edit1, WM_SETFONT, hFont, 0);
end;
{ Change label (static) text }
SetWindowText(Label1, "Enter password:");
{ Set the focus to the edit control }
SetFocus(Edit1);

UpdateWindow(Handle);

{ ** Message Loop ** }
while(GetMessage(Msg, Handle, 0, 0)) do
begin
TranslateMessage(msg);
DispatchMessage(msg);
end; { with }
end.

Желаю успехов


 
Rouse_   (2002-12-27 00:15) [6]

Блин, сори, связь кривая :((((



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
1-28753
Saracin
2003-01-31 17:46
2003.02.10
Линейка как MS Word


3-28658
VFP
2003-01-24 07:29
2003.02.10
Логическая переменная на SQL


1-28929
kva
2003-01-31 10:54
2003.02.10
Глюк UpDown


1-28894
XPatriot[d.m.b]
2003-01-30 20:55
2003.02.10
Графическая область


1-28841
UDS
2003-02-02 21:53
2003.02.10
Срочно!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский