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

Вниз

Проблема с юникодом   Найти похожие ветки 

 
ZZ   (2002-06-28 13:57) [0]

Код создания окна. такому окну не получается установить заголовок (получается только 1ый символ). Подскажите где ошибка?


var
msgs : MSG;
WndClass : ATOM;
Wnd : HWND;
Text : WideString;
begin
Text:="Test";
WndClass := RegisterMainWindowClassW(@WndProc);
if (WndClass<>0)
then begin
Wnd:=CreateMainWindowW(WndClass);
end;

ShowWindow(wnd,SW_SHOW);
UpdateWindow(wnd);
if isWindowUnicode(Wnd) then MessageBoxW(0,"Unicode","Test",MB_OK);
SetWindowTextW(wnd,PWideChar(Text));
while (GetMessage(msgs, 0, 0, 0))do
begin
TranslateMessage(msgs);
DispatchMessage(msgs);
end;
end.

function CreateMainWindowW(WndClass: ATOM):HWND;
begin
Result:= CreateWindowExW(0,"NTAdminMain",PWideChar(WideString("jj")),
WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, 0, 0, hInstance, nil);
end;

function RegisterMainWindowClassW(WndProc:Pointer):ATOM;
var
wndclass : TWNDCLASSEXW;
begin
wndclass.cbSize := sizeof(WNDCLASSEXW);

wndclass.style := CS_HREDRAW or CS_VREDRAW;
wndclass.lpfnWndProc := WndProc;
wndclass.cbClsExtra := 0;
wndclass.cbWndExtra := 0;
wndclass.hInstance := hInstance;
wndclass.hIcon := 0;//LoadIcon(hInstance, (LPCTSTR)IDI_WIN32);
wndclass.hCursor := 0;//LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground := HBRUSH((COLOR_WINDOW+0));
wndclass.lpszMenuName := nil;//IDC_WIN32;
wndclass.lpszClassName := "NTAdminMain";
wndclass.hIconSm := 0;//LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);

Result:= RegisterClassExW(wndclass);
end;


 
Игорь Шевченко   (2002-06-28 14:10) [1]


const
AClassName : WideString = "NTAdminMain";

wndclass.lpszClassName := PWideChar(AClassName);

{ На фиг здесь это параметр у функции ??? }
function CreateMainWindowW(WndClass: ATOM):HWND;
begin
Result:= CreateWindowExW(0,PWideChar(AClassName),PWideChar(WideString("jj")),
WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, 0, 0, hInstance, nil);
end;






 
ZZ   (2002-06-28 16:07) [2]

Нафиг там этот параметр - не знаю. Примерчик я позаимствовал в инете :) Просто добавил буквы W

Исправил - НЕ РАБОТАЕТ !!!!!


 
ZZ   (2002-06-28 16:16) [3]

function WndProc(hWnd : HWND; messages :UINT; wParam : WPARAM; lParam:LPARAM):LONGINT;stdcall;
var
wmId, wmEvent : Integer;
ps : PAINTSTRUCT;
hdc : THandle;
begin
case messages of
WM_COMMAND:
begin
wmId := LOWORD(wParam);
wmEvent := HIWORD(wParam);
// Parse the menu selections:
case wmId of
MMN_ABOUT:
begin
if (IsWindowUnicode(hWnd)) then MessageBoxW(hWnd,"SSS","SSS",MB_OK)
else MessageBox(hWnd,"Error","Not Unicode",MB_OK);
SetWindowTextW(hWnd,"NewText");
// DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
end;

IDM_EXIT:
DestroyWindow(hWnd);

else
begin
Result:=DefWindowProc(hWnd, messages, wParam, lParam);
exit;
end;
end;
end;

WM_PAINT:
begin
hdc := BeginPaint(hWnd, ps);
EndPaint(hWnd, ps);
end;

WM_DESTROY:
PostQuitMessage(0);

else
begin
Result:= DefWindowProc(hWnd, messages, wParam, lParam);
Exit;
end;
end;
Result:=0;
end;


 
ZZ   (2002-06-28 16:16) [4]

function WndProc(hWnd : HWND; messages :UINT; wParam : WPARAM; lParam:LPARAM):LONGINT;stdcall;
var
wmId, wmEvent : Integer;
ps : PAINTSTRUCT;
hdc : THandle;
begin
case messages of
WM_COMMAND:
begin
wmId := LOWORD(wParam);
wmEvent := HIWORD(wParam);
// Parse the menu selections:
case wmId of
MMN_ABOUT:
begin
if (IsWindowUnicode(hWnd)) then MessageBoxW(hWnd,"SSS","SSS",MB_OK)
else MessageBox(hWnd,"Error","Not Unicode",MB_OK);
SetWindowTextW(hWnd,"NewText");
// DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
end;

IDM_EXIT:
DestroyWindow(hWnd);

else
begin
Result:=DefWindowProc(hWnd, messages, wParam, lParam);
exit;
end;
end;
end;

WM_PAINT:
begin
hdc := BeginPaint(hWnd, ps);
EndPaint(hWnd, ps);
end;

WM_DESTROY:
PostQuitMessage(0);

else
begin
Result:= DefWindowProc(hWnd, messages, wParam, lParam);
Exit;
end;
end;
Result:=0;
end;


 
ZZ   (2002-06-28 16:23) [5]

Вопрос снят


 
ZZ   (2002-06-28 16:24) [6]

Вопрос снят
Надо было и DefWindowProcW DispatchMessageW GetMessageW

Игорь Шевченко
Спасибо за помощь в чате :)



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

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

Наверх





Память: 0.46 MB
Время: 0.007 c
1-3434
kserg@ukr.net
2002-08-21 15:33
2002.09.02
помогите


1-3449
ЮРИЙ_К
2002-08-20 13:42
2002.09.02
Отловить фокус мышки на кнопке заголовка rxDBGrid


3-3270
B
2002-08-06 12:52
2002.09.02
Выбор движка


1-3427
Netizen
2002-08-22 23:00
2002.09.02
Как найти подстроку в строке???


1-3345
RedArc
2002-08-21 18:19
2002.09.02
TMemo





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