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

Вниз

CreateDialog -????   Найти похожие ветки 

 
YUS   (2001-11-21 20:52) [0]

Мастера, подскажите, в чем ошибка.У меня проблема с ф-цией CreateDialog. При создании окна "dddd"- выдает ошибку.
Может неверно задано имя окна?????
function GetMsdProc(Code: Integer; wParam, lParam:Longint):Longint; stdcall;
begin
if nOk = 0 then begininc(nOk);
CreateDialog(hInstance,"dddd",null,@Disp);//?????????
end;
function SetHook(hMain:THandle):boolean; export;
var IDTrad : cardinal;
begin
hServ:=hMain;
IdTrad:=GetWindowThreadProcessId(hStol,0); //находим его ID
If HookID = 0 then begin
IdPot:= GetCurrentThreadId();
HookID:=SetWindowsHookEx(WH_GETMESSAGE, @GetMsdProc,hInstDll,IDTrad);
if HookID<>0 then begin // Если хук установлен т0
PostThreadMessage(IdTrad,WM_NULL,0,0);
Result:=true;end else Result:=false;end;end;


 
Suntechnic   (2001-11-21 21:01) [1]

А что есть "dddd" в твоём случае? Вообще-то вторым параметром передаётся имя шаблона, на основании которого окно создаётся. Тут два варианта:
1) Либо ты такими "постыдными" именами шаблоны обхываешь :)
2) Либо не разобрался как на API диалоговые окна создаются...
В любом случае дело во втором параметре...


 
YUS   (2001-11-22 07:11) [2]

Из хелпов перевел как название окна,вижу ошибся.Объясните ламеру, что есть шеблон окна.


 
Suntechnic   (2001-11-22 07:52) [3]

Шаблон окна это ресурс, на базе которого создаётся диалоговое окно. Ресурс можно создать в специальном редакторе ресурсов или просто ручками. Ну например он может иметь вот такой вид:
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_MAINDIALOG DIALOGEX 0, 0, 193, 74
STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | WS_POPUP | WS_VISIBLE |
WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_TOPMOST
CAPTION "Open Password"
FONT 8, "Helv", 0, 0, 0x0
BEGIN
PUSHBUTTON "Close",IDCANCEL,134,38,52,15
LTEXT "Password:",IDC_STATIC,7,7,107,10
CONTROL "Spy Mode On",IDC_GOBTN,"Button",BS_AUTOCHECKBOX |
BS_PUSHLIKE | WS_TABSTOP,7,38,52,15
CONTROL 101,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,7,68,
179,3
RTEXT "",IDC_COPYRIGHT,58,56,128,10,SS_NOTIFY
EDITTEXT IDC_PASSEDIT,7,17,179,15,ES_AUTOHSCROLL | ES_READONLY
END

Здесь IDD_MAINDIALOG это и есть тот самый идентификатор ресурса, только он ещё имеет численный эквивалент который здесь не показан...

...честно говоря когда мне надо писать на API и использовать ресурсы диалогового окна я беру VC++ и не морочу себе голову, там есть прекрасный редактор ресурсов... а уж чего в Делфях для этих целей есть сказать не могу...


 
YUS   (2001-11-22 08:05) [4]

Suntechnic,
БОЛЬШОЕ СПАСИБО !!!!!!!!!!!!!!


 
YUS   (2001-11-22 08:41) [5]

А под Delphi примерчика неукого нет?


 
Evgeny   (2001-11-22 14:53) [6]

А тебе полный ответ и дали. Указанный выше пример положи в файл с расширением .RC. Обработай файлом BRCC32.EXE. Подключи в свою программу полученный RES файл. ( {$R твой_файл.res} ) Ну и вызывай свой диалог.
Для простоты имя диалога (IDD_MAINDIALOG) можешь заменить на число - ну к примеру 10 (или в дополнительном PAS файле опиши это имя как числовую константу - к примеру опять же 10). Ну и дальше вызывай:
CreateDialog(hInstance, 10, null, @Disp)



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

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

Наверх





Память: 0.56 MB
Время: 0.026 c
1-66228
Vacheslav
2002-01-01 20:30
2002.01.21
Тоскливо без старых операторов


4-66393
romanK
2001-11-20 17:47
2002.01.21
хранитель екрана


4-66389
Диман
2001-11-19 10:06
2002.01.21
Как получить размер файла? Ессно, винапишной функцией GetFileSize


1-66276
BigLamer
2002-01-04 12:57
2002.01.21
Почему Delphi делит не верно?


3-66218
Mute
2001-12-18 13:08
2002.01.21
Через ADO+ODBC к INFORMIX





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский