Главная страница
    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.01 c
3-3238
Yngwar
2002-08-11 12:43
2002.09.02
Проблема с транзакциями в ADO


3-3287
battar
2002-08-12 21:05
2002.09.02
QReport


1-3443
Sergey L.
2002-08-20 09:46
2002.09.02
Сохранение отчета в файл!!!!


14-3592
msalex
2002-08-03 20:24
2002.09.02
декомпилтор Delphi?


8-3534
Oleg Shashin
2002-04-24 04:02
2002.09.02
Посоветуйте компонент для конверсии GIF,JPG в BMP





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