Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > PropertySheetPage


Автор: navodri 9.12.2010, 12:53
Собственно, весь вопрос в шапке темы.

Автор: Rrader 9.12.2010, 13:32
Код

ShowWindow(GetDlgItem(<Handle>, IDOK), SW_HIDE);
ShowWindow(GetDlgItem(<Handle>, IDCANCEL), SW_HIDE);

Автор: navodri 9.12.2010, 14:39
2Rrader Забавно... Ладно, представлю код:

Код

var
 psp    : TPropSheetPage;
 ahpsp  : array[0..1]of HPROPSHEETPAGE;
 psh    : TPropSheetHeader;

function PageOneSetting(hwPage1: HWND; uMsg: UINT; wp: WPARAM; lp: LPARAM): bool; stdcall;
begin
 Result := false;
  case uMsg of
   WM_INITDIALOG:
    begin
    end;
   WM_COMMAND:
    case HIWORD(wp) of
     BN_CLICKED: SendMessage(GetParent(hwPage1), PSM_CHANGED, WPARAM(hwPage1), 0);
    end;
   WM_NOTIFY:
    case PNMHdr(lp)^.code of
     PSN_APPLY: ;
     PSN_RESET: ;
    end;
  end;
end;

procedure InitPropertySheet;
begin
  Randomize;
  psp.dwSize            := sizeof(psp);
  psp.dwFlags           := PSP_DEFAULT or PSP_USEICONID;
  psp.hInstance         := hInstance;
  psp.pfnDlgProc        := @PageOneSetting;
  psp.pszIcon           := MAKEINTRESOURCE(1);
  psp.pszTemplate       := MAKEINTRESOURCE(100);
  ahpsp[0]              := CreatePropertySheetPage(psp);

  ZeroMemory(@psh,sizeof(psh));
  psh.dwSize            := sizeof(psh);
  psh.hInstance         := hInstance;
  psh.hwndParent        := 0;
  psh.phpage            := @ahpsp[0];
  psh.nStartPage        := 0;
  psh.nPages            := 1;
  psh.dwFlags           := PSH_DEFAULT or PSH_USEICONID or PSH_NOAPPLYNOW;
  psh.pszCaption        := 'Настройки';
  psh.pszIcon           := MAKEINTRESOURCE(1);
  psh.pfnCallback       := nil;
end;


И куда липить ShowWindow по-твоему?

Автор: Rrader 9.12.2010, 15:36
В WM_INITDIALOG

Автор: navodri 9.12.2010, 19:58
2Rrader Не работает! Есть еще идеи?

Автор: Keeper89 10.12.2010, 01:46
Может Handle неправильный подставляешь?

Автор: navodri 10.12.2010, 23:17
А какой правильный? Там не разгонишься...

Автор: Maks1509 12.12.2010, 10:01
ShowWindow(GetDlgItem(GetParent(hwPage1),  IDCANCEL),  SW_HIDE);
?
SendMessage(GetParent(hwPage1), PSM_INDEXTOHWND, <Индекс_страницы_свойств>, 0) вернет родителя, а там подставишь его в GetDlgItem.

Автор: CodeMonkey 12.12.2010, 11:52
http://www.transl-gunsmoker.ru/2010/05/blog-post_1174.html.

Автор: navodri 12.12.2010, 22:19
спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)