在delphi中打开打印预览窗体,如何在程序中实现自定义预览窗体的文字,
如果有文字,如何去除??

解决方案 »

  1.   

    没大看明白,如果是要改自定义预览窗体的标题栏,取得这个窗口的句柄,再用SetWindowText就可以了.
      

  2.   

    高人留步 
    可以给出源码么??如goldwolf所说,
    如何取得该窗体句柄??
    然后如何改变他的标题文字??
      

  3.   

    findwindow
    getwindow
    SetWindowText
      

  4.   

    这样取吧 比如你的打印窗体的标题文字是 "打印" :
    var
      Hwnd: THandle;
    begin
      Hwnd := FindWindow(nil, '打印'); 
      SetWindowText(Hwnd, '新的标题', 8); 
    end;
      

  5.   

    pankun 我试过了,你的办法可以,
    但是,如果我是在后一个窗体中间要改变呢??
    也就是说,我在前面一个窗体获取后一窗体的句柄
      

  6.   

    你的后一窗体的标题是不定的么?还可以按类名取窗体句柄, FindWindow('类名', nil).
    还有几个取窗体句柄的函数你参考一下吧,GetWindow, EnumWindow,GetWindow就可以实现取得下一个窗体的功能,不过我们放假啦,我在网吧,无法给你祥细的代码,不好意思啊,你自己试一下吧。
      

  7.   

    另:还有几个取窗体句柄的函数,希望对你有帮助
    GetActiveWindow, GetNextWindow, GetTopWindow
      

  8.   

    pankun(剑神一笑):
      您能否传授一下怎样创建一个空白窗体,烦您给附上原码。我请教过这个问题,您总是一笑而过。 我有2000分,专门另开帖给您,可否?
      

  9.   

    to pankun(剑神一笑):
      
       盼!
      

  10.   

    pankun(剑神一笑)
    可以了,上面问题已经解决,
    另:可以用setwindowtext 变对话框的标题么??
      

  11.   

    直接改Caption不行吗?难道你说的不是这个意思,那就是我的理解能力的问题了!!
      

  12.   

    TO:Kalian
    可以用SetWindowText改对话框的标题TO: puma4993
      

  13.   

    TO:puma4993 
      你的意思是用API建个空白窗体么?如果是这样的话,我转别人的一篇代码给你参考一下。program Project1;{$APPTYPE CONSOLE}uses
      windows,
      messages;// 回调函数
    function AppWindowProc(
        hWnd:HWND; uMsg:UINT;
        wParam:WPARAM; lParam:LPARAM):LRESULT; stdcall;
    begin
      Result := 0;
      case uMsg of
        WM_DESTROY:begin
          PostQuitMessage(0);
          Exit;
        end;
      end;
      Result :=
        DefWindowProc(hWnd, uMsg, wParam, lParam);
    end;
    var
      wc: TWndClass;
      hWnd: Integer;
      MSG: TMsg;begin
      { TODO -oUser -cConsole Main : Insert code here }
      // 程序从这里开始执行
      wc.style := CS_VREDRAW or CS_HREDRAW;
      wc.lpfnWndProc := @AppWindowProc;
      wc.cbClsExtra := 0;
      wc.cbWndExtra := 0;
      wc.hInstance := HInstance;
      wc.hIcon := LoadIcon(0, IDI_APPLICATION);
      wc.hCursor := LoadCursor(0, IDC_ARROW);
      wc.hbrBackground := (COLOR_BTNFACE+1);
      wc.lpszMenuName := nil;
      wc.lpszClassName := 'My App';
      if RegisterClass(wc)=0 then Exit;          //注册窗口
      hWnd := CreateWindow(                      //建立窗口
        wc.lpszClassName, 'TEST',
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT,
        CW_USEDEFAULT, CW_USEDEFAULT,
        0, 0, HInstance, nil);
      if hWnd=0 then Exit;
      ShowWindow(hWnd, SW_SHOWNORMAL);
      while GetMessage(MSG, 0, 0, 0) do begin   //开始消息循环
        TranslateMessage(MSG);
        DispatchMessage(MSG);
      end;
      Halt(MSG.wParam);
    end.