Не подскажите к чему относится параметр BDR_RAISEDOUTER. В VCL это вроде бы bvRaised и относится к свойству BevelOuter , а как прописать это в WinApi?
volvo
28.06.2006 16:28
Что значит "к чему относится"? Это одна из констант, используемая, например при вызове DrawEdge
Цитата
как прописать это в WinApi?
А это и есть WinAPI...
Klose
28.06.2006 17:06
Мдя...
Вообщем рисую я панель через апи.
Цитата
PanelS:=CreateWindowEx(0,'Static',nil,WS_VISIBLE or WS_CHILD,0,0,145,251, WND,0, hInstance, nil );
Но панель получается не такой, как я привык. Всмысле получается она как бы ниже фона окна. Потом я посмотрел на инспекторе объектов, что за такой вид получается если значение свойства BevelOuter равно bvLowered, а мне надо, чтобы было bvRaised. Как написать это?
Мож сейчас понятней
volvo
28.06.2006 17:27
PanelS:=CreateWindowEx(WS_EX_WINDOWEDGE,'Static',nil,WS_VISIBLE or WS_CHILD,0,0,145,251,WND,0, hInstance, nil );
попробуй...
Klose
28.06.2006 17:45
Неа, не получается. Выложу-ка код(вдруг ошибся где-нибудь)
with Pc do begin cbSize := SizeOf( Pc ); style := CS_HREDRAW or CS_VREDRAW; lpfnWndProc := @WindowProc; cbClsExtra := 0; cbWndExtra := 0; //:= BDR_RAISEDOUTER; hInstance := hInstance; hCursor := LoadCursor( 0, IDC_ARROW ); hbrBackground := COLOR_BTNFACE+1; lpszMenuName := nil; lpszClassName := PnlClass; end;
RegisterClassEx( Pc ); PanelS:=CreateWindowEx(0,PnlClass,nil,WS_VISIBLE or WS_CHILD or WS_BORDER ,0,0,145,251, WND,0, hInstance, nil );
while GetMessage( Msg, 0, 0, 0 ) do begin TranslateMessage( Msg ); DispatchMessage( Msg ); end; Halt( Msg.wParam );
end.
volvo
28.06.2006 22:29
Ты знаешь, в чем дело? В том, что Raised и Sunken можно применить только к Border-у, размер которого меняется. Иначе будет можно делать только Sunken (утопленный) контрол...
... begin with Wc do begin cbSize := SizeOf(Wc); style := CS_HREDRAW or CS_VREDRAW; lpfnWndProc := @WindowProc; cbClsExtra := 0; cbWndExtra := 0; hInstance := hInstance; hIcon := LoadIcon(0, IDI_APPLICATION); hCursor := LoadCursor(0, IDC_ARROW); hbrBackground := COLOR_BTNFACE+1; lpszMenuName := nil; lpszClassName := WndClass; end; RegisterClassEx(Wc);
while GetMessage(Msg, 0, 0, 0) do begin TranslateMessage(Msg); DispatchMessage(Msg); end; Halt(Msg.wParam); end.
Klose
28.06.2006 23:37
Спасибо, спасибо, спасибо. Теперь все нормально.
Только уточнить: WS_THICKFRAME отвечает за вид? А WS_EX_TOOLWINDOW за то, что Border может менять размер, так. Еще раз спасибо.
volvo
28.06.2006 23:42
Нет... Наоборот. WS_THICKFRAME отвечает за то, что контрол может менять размер... А WS_EX_TOOLWINDOW - это... Как бы сказать. Ну, лучше, чем в MSDN все равно не скажешь:
Цитата
WS_EX_TOOLWINDOW Creates a tool window; that is, a window intended to be used as a floating toolbar. A tool window has a title bar that is shorter than a normal title bar, and the window title is drawn using a smaller font. A tool window does not appear in the taskbar or in the dialog that appears when the user presses ALT+TAB. If a tool window has a system menu, its icon is not displayed on the title bar. However, you can display the system menu by right-clicking or by typing ALT+SPACE.
Перевод:
Цитата
WS_EX_TOOLWINDOW Создает окно инструментальных средств; то есть окно предполагается использовать как плавающую инструментальную панель. Окно инструментальных средств имеет строку заголовка, которая является более короткой, чем нормальная строка заголовка, а заголовок окна выводится с использованием меньшего шрифта. Окно инструментальных средств не появляется в панели задач или в диалоговом окне, которое появляется, когда пользователь нажимает ALT+TAB. Если окно инструментальных средств имеет системное меню, его иконка не отображается в заголовке, однако, доступ к системному меню возможен через нажатие правой кнопкой мыши или нажатие Alt+Space
Klose
29.06.2006 0:32
Мдя, попутал.
Переводил сам или транслейтером?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.