Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

RegisterCalssEx   Найти похожие ветки 

 
jonni ©   (2003-09-04 15:55) [0]

проблема в регистрации класса: что не так понять не могуу....
создаю свой класс:
//--------------------
type
TMyWindow = class
private
c_hWnd:HWND;
c_WndClass:String;
protected

public
constructor Create();
function RegisterMyClass(f_WndClass:String):Boolean;
published
end;
//-----------------
constructor TMyWindow.Create();
begin
inherited;
c_hWnd:=0;
c_WndClass:="";
end;

function TMyWindow.RegisterMyClass(f_WndClass: String): Boolean;
var wc:TWndClassEx;
begin
Result:=False;
with wc do
begin
cbSize := SizeOf(wc);
lpfnWndProc := @WndProc;
hInstance := SysInit.hInstance;
lpszClassName := PChar(f_WndClass);
hIcon := LoadIcon (0, IDI_APPLICATION);
hCursor := LoadCursor (0,IDC_ARROW);
end;

if RegisterClassEx (wc) = 0 then
begin
MessageBox (0, pchar("hren wam"), PChar("fignya"), MB_OK or MB_ICONERROR or MB_SETFOREGROUND or MB_TOPMOST);
Result:=True;
end;
end;

//----------------
далее делаю вот как:

var
myWind:TMyWindow;

myWindow:=TMyWindow.Create;
myWindow.RegisterMyClass("my_window");

регистрация класса не происходит :(

НО если я перенесу код регистрации класса в тело программы то всё проходит успешно...

Что же не так?


 
Игорь Шевченко ©   (2003-09-04 15:57) [1]

А что говорит GetLastError ?


 
jack128 ©   (2003-09-04 16:09) [2]


> НО если я перенесу код регистрации класса в тело программы
> то всё проходит успешно...

А когда класс не регистрирутся, это не в теле программы? Тогда где?


 
Игорь Шевченко ©   (2003-09-04 16:20) [3]

Перед строкой

cbSize := SizeOf(wc);

Вставить
Fillchar(wc, SizeOf(wc), 0);


 
Игорь Шевченко ©   (2003-09-04 16:39) [4]

Пример:
procedure InitApp ();
var
MyClass : WNDCLASSEXW;
MyWnd : HWND;
begin
MyClass.cbSize := SizeOf(MyClass);
MyClass.style := CS_HREDRAW or CS_VREDRAW;
MyClass.lpfnWndProc := @MyWndProc;
MyClass.cbClsExtra := 0;
MyClass.cbWndExtra := 0;
MyClass.hInstance := HInstance;
MyClass.hIcon := 0;
MyClass.hCursor := LoadCursorW(0, IDC_ARROW);
MyClass.hbrBackground := GetSysColorBrush(COLOR_BTNFACE);
MyClass.lpszMenuName := nil;
MyClass.lpszClassName := PWideChar(WindowClassName);
MyClass.hIconSm := 0;
if RegisterClassExW(MyClass) = 0 then
RaiseLastWin32Error();
.....


Вместо Unicode-функций подставить их Ansi-версии



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

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.065 c
14-41916
Butterfly
2003-10-21 11:59
2003.11.13
Задачка. Может, кто-нибудь знает ответ?


8-41733
EvgenTss
2003-06-01 20:54
2003.11.13
требуется слить ряд файлов в один...


3-40845
Denisiy
2003-10-21 16:16
2003.11.13
Как передать в переменную резльтат запроса от Query?


14-42051
Rauf
2003-10-16 03:22
2003.11.13
Я вот нахожу ссылки на ПЕРЛ в виде zip архива, а DBI и Mysql ...


6-41851
Zombie
2003-09-11 08:53
2003.11.13
TWebBrowser