Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не работает DrawText

65K
24 февраля 2011 года
Melefaro
3 / / 24.12.2010
Не работает пример из книги, окно создаётся, но текст в нём не выводиться. Извеняюсь, что много кода, но разобраться в нём вроде легко. Заранее благодарю.


#include <windows.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hIstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)

{
HWND hMainWnd;
char szClassName[]="MyClass";
MSG msg;
WNDCLASSEX wc;
wc.cbSize=sizeof(wc);
wc.style=CS_HREDRAW | CS_VREDRAW ;
wc.lpfnWndProc=WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hIstance;
wc.hIcon = LoadIcon(NULL, IDI_WINLOGO);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = szClassName;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if (!RegisterClassEx(&wc))
{
MessageBox(NULL,"Can not register class","Error",MB_OK);
return 0;
}
hMainWnd = CreateWindow (
szClassName,"Hello application title",
WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,
0,600,600,(HWND)NULL,(HMENU)NULL,(HINSTANCE)hIstance,NULL);
if (!hMainWnd)
{
MessageBox(NULL,"Can not create window","Error",MB_OK);
return 0;
}
ShowWindow(hMainWnd,nCmdShow);
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
HDC hDC;
PAINTSTRUCT ps;
RECT rect;
switch (uMsg)
{
case WM_PAINT:

hDC = BeginPaint(hWnd,&ps);
DrawText(hDC,"Hellowm world",-1,&rect,DT_SINGLELINE | DT_CENTER | DT_VCENTER );
EndPaint(hWnd,&ps);
break;
case WM_CLOSE:
MessageBox(NULL,"You realy want to close thil application?","Quit",MB_OK);
DestroyWindow(hWnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,uMsg ,wParam,lParam);
}
return 0;
}
//---------------------------------------------------------------------------
278
24 февраля 2011 года
Alexander92
1.1K / / 04.08.2008
[QUOTE=MSDN]
DrawText Function
...
lpRect [in, out]
A pointer to a RECT structure that contains the rectangle (in logical coordinates) in which the text is to be formatted.
[/QUOTE]

Вы должны передать корректные координаты для отображения текста в вашей структуре rect. Поскольку, исходя из вашего кода, она у вас не инициализируется и не обнуляется вручную, то перед передачей в DrawText() она содержит, вообще говоря, "мусор".
65K
24 февраля 2011 года
Melefaro
3 / / 24.12.2010
Спасибо. Не знаю, куда я смотрел, когда с книжки срисовывал)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог