Вертикальный заголовок окна

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Вертикальный заголовок окна

bombur » 20 сен 2005, 00:44

напр.,

http://www.datamekanix.com/

см. CSizingControlBarCF::NcPaintGripper()

Folko » 19 сен 2005, 21:59

Придется глубже вникать в WinAPI, я думал это проще делается. WinAPI начал изучать 2 недели назад. Когда-нибудь я его все же это сделаю, рано или поздно, так или иначе

Eugie » 19 сен 2005, 21:50

Думаю, придется все делать вручную. Как это делается в принципе - см. по указанной выше ссылке. Вертикальные заголовки там тоже не предусмотрены, но код в целом поучительный, на его основе можно сделать то, что тебе надо.

Folko » 19 сен 2005, 21:39

Если нельзя с помощью DrawCaption, в чем я убедился после нескольких часов тщетных попыток,то чем можно? Или нужно все вырисовывать вручную?

Eugie » 19 сен 2005, 14:14

Сомневаюсь, что DrawCaption в принципе способна отрисовать вертикальный заголовок. Точнее - уверен, что не может, т.к. не вижу параметра, отвечающего за направление текста.

Вообще, если интересно, как может быть реализована DrawCaption, см. http://reactos.com/doxygen/lib/nonclien ... tml#l01106

Народ разрабатывает свою ОС (ReactOS), совместимую с Windows (маньяки ;) )

Romeo » 16 сен 2005, 11:25

WM_PAINT посылается системой при для перерисовки клиентской части окна. Тебе нужно ловить WM_NCPAINT. Подробности в MSDN.

Вертикальный заголовок окна

Folko » 15 сен 2005, 20:13

Как можно сделать вертикальный заголовок у окна средствами WinAPI.
Я пробовал так, но что-то не так делаю:

Код: Выделить всё

LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{switch(msg)
{case WM_PAINT:
	 {HDC hdc = GetDC(hwnd);
      RECT *Re = new RECT;
      Re->bottom = 400;
      Re->top = 0;
      Re->left = 350;
      Re->right = 400;
      DrawCaption(hwnd,hdc,Re,DC_GRADIENT);
	  ReleaseDC(hwnd,hdc);
	  delete Re;
	  return 0;
	 }
 case WM_DESTROY:
    {PostQuitMessage(0);
	 return 0;
	}
  }
return DefWindowProc(hwnd,msg,wParam,lParam);
Может я не там его рисую. Стиль окна WS_BORDER. Окно у меня 400х500

Вернуться к началу