Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2008, 15:30   #11
AidarBik
Форумчанин
 
Регистрация: 12.06.2007
Сообщений: 130
По умолчанию

...
У меня такое окно
Код:
PopupWindow:=CreateWindowEx(WS_EX_APPWINDOW, 'DesktopText', 'Desktop Text', WS_OVERLAPPED or WS_SYSMENU, WorkSpace.Right - 200, WorkSpace.Bottom - 120, 200, 120, MainWindow, 0, HInstance, nil);
SetWindowLong(PopupWindow, GWL_EXSTYLE, GetWindowLong(PopupWindow, GWL_EXSTYLE) or (not WS_EX_APPWINDOW));
SetWindowPos(PopupWindow, HWND_BOTTOM, WorkSpace.Left, WorkSpace.Top, 200, 120, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
Но это окно не главное. Главное окно (MainWindow) может отображаться на панели задач, а PopupWindow нет. Но у меня они отображаются оба. Что делать?
AidarBik вне форума Ответить с цитированием
Старый 09.02.2008, 15:35   #12
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Что и после этого кода они отображаются оба ?
BOBAH13 вне форума Ответить с цитированием
Старый 09.02.2008, 15:37   #13
AidarBik
Форумчанин
 
Регистрация: 12.06.2007
Сообщений: 130
По умолчанию

Да. Оба.
AidarBik вне форума Ответить с цитированием
Старый 09.02.2008, 15:43   #14
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Извините сразу не заметил, если вы хотите убрать с панели то зачем создаете с иконкой
CreateWindowEx(WS_EX_APPWINDOW, .... поставьте там 0 да и все

Скажу как надо все делать... допустим нашли вы строку коду реализующую какое то действие, применили ее к своей программе, но уж потрудитесь понять ее полностью !! Воизбежания подобных проблем
BOBAH13 вне форума Ответить с цитированием
Старый 09.02.2008, 15:44   #15
AidarBik
Форумчанин
 
Регистрация: 12.06.2007
Сообщений: 130
По умолчанию

Оно все равно осталось.
AidarBik вне форума Ответить с цитированием
Старый 09.02.2008, 15:48   #16
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Попробуйте сделать в CreateWindowEx вместо MainWindow поставтье 0 ) тобиш никого... виндовс должен выкинуть окно как desktop child's
BOBAH13 вне форума Ответить с цитированием
Старый 09.02.2008, 15:49   #17
AidarBik
Форумчанин
 
Регистрация: 12.06.2007
Сообщений: 130
По умолчанию

Не получается. И 0 ставил, и GetDesktopWidow.
AidarBik вне форума Ответить с цитированием
Старый 09.02.2008, 16:27   #18
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

Код:
program Project1;
uses
  Windows,
  Messages;

var
    wc   : TWndClassEx;
    pWnd : HWND;
    pMsg : TMsg;

function WindowProc(wnd: HWND; Msg: Integer; wParam: wParam; lParam: lParam): Lresult; stdcall;
begin
    Result:=0;
    case msg of
     WM_CREATE:
      begin
      end;
     WM_DESTROY:
      begin
      end;
     WM_PAINT:
      begin
      end;
    else
     Result:=DefWindowProc(wnd,msg,wparam,lparam);
    end;
end;

begin
     wc.cbSize       := sizeof(wc);
     wc.lpfnWndProc  := @WindowProc;
     wc.cbClsExtra   := 0;
     wc.cbWndExtra   := 0;
     wc.hInstance    := HInstance;
     wc.hCursor      := LoadCursor(0, IDC_ARROW);
     wc.hbrBackground:= COLOR_BTNFACE+1;
     wc.lpszMenuName := nil;
     wc.lpszClassName:= 'Prog';      
     RegisterClassEx(wc);
     pWnd := CreateWindowEx(WS_EX_APPWINDOW, 'Prog', 'Prog',
       WS_SYSMENU , getsystemmetrics(0)div 2-90, getsystemmetrics(1)div 2-90, 250, 254, 0, 0,
       Hinstance, nil);
     ShowWindow(pWnd,SW_SHOW);
     SetWindowLong(pwnd, GWL_EXSTYLE,
     GetWindowLong(pwnd, GWL_EXSTYLE) or (not WS_EX_APPWINDOW));
     SetWindowPos(pwnd, HWND_BOTTOM, getsystemmetrics(0)div 2-90, getsystemmetrics(1)div 2-90, 250, 254, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
     while true do
     begin
      if peekmessage(pmsg,0,0,0,pm_remove)=true then
      begin
       TranslateMessage(pMsg);
       DispatchMessage(pMsg);
      end;
     end;
end.
Kostia вне форума Ответить с цитированием
Старый 09.02.2008, 16:31   #19
AidarBik
Форумчанин
 
Регистрация: 12.06.2007
Сообщений: 130
По умолчанию

Получилось, если ShowWindow вызывать после
Код:
SetWindowLong(pwnd, GWL_EXSTYLE,
     GetWindowLong(pwnd, GWL_EXSTYLE) or (not WS_EX_APPWINDOW));
     SetWindowPos(pwnd, HWND_BOTTOM, getsystemmetrics(0)div 2-90, getsystemmetrics(1)div 2-90, 250, 254, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
Но у формы все равно остаются границы. Их можно как-то убрать?

Последний раз редактировалось rpy3uH; 10.02.2008 в 20:02.
AidarBik вне форума Ответить с цитированием
Старый 09.02.2008, 17:47   #20
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

pWnd := CreateWindowEx(WS_CHILD, 'Prog', 'Prog',
WS_SYSMENU , getsystemmetrics(0)div 2-90, getsystemmetrics(1)div 2-90, 250, 254, 0, 0,
Hinstance, nil);
Kostia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вращение 5-угольника на рабочем столе Ratte Помощь студентам 7 21.04.2008 18:41
Значки на рабочем столе Xardas Свободное общение 4 01.03.2008 20:21
SpeedButton на рабочем столе ERASERROR Общие вопросы Delphi 10 22.01.2008 16:58
html на рабочем столе >AdepT< Win Api 4 28.02.2007 20:06
Программа рисовалка на рабочем столе в delphi Alar Общие вопросы Delphi 0 29.10.2006 20:03