0

我正在使用 Embarcadero RAD 2 Studio (borland) 和 owlNext 库编写应用程序。

在那里我创建了一个TDecoratedMDIFrame对象,我使用它打开它

class TMDIApp : public owl::TApplication { // -------------------------------

    public:
    TMDIApp() : owl::TApplication(ProgName) {}

    TMDIApp(const char far* name, HINSTANCE instance, HINSTANCE prevInstance, const char far* cmdLine, int cmdShow) : owl::TApplication(name, instance, prevInstance, cmdLine, cmdShow) {}

    void InitMainWindow();
};

void TMDIApp::InitMainWindow() { // --------------------------
    PMAcMDI = new TMAcMDI;
    PMW = new TDecoratedMDIFrame(ProgName, MAC_MENU, *PMAcMDI);

    MainWindow = PMW;
}

int OwlMain(int, char* []) { // ------------------------
    return TMDIApp().Run();
}

因此,最终它由 owlnext 库的 aplicat.cpp 使用MainWindow->ShowWindow(nCmdShow);.

但是,现在我想最大化地打开它。

我做了一些研究并发现 PMW->WindowProc(WM_SIZE,SIZE_MAXIMIZED,0); 似乎没有做任何事情......

你们有谁知道如何最大化这个窗口或启动它最大化?

4

1 回答 1

0

我在“OWL 程序员指南”的旧 archive.org 副本中找到了有关此问题的信息 http://archive.org/stream/bitsavers_borlandborindowsforCVersion2.0ProgrammersGuideOct9_19152845/Borland_ObjectWindows_for_C_Version_2.0_Programmers_Guide_Oct93_djvu.txt

那里说:

~~ 您可以通过以下方式更改应用程序主窗口的显示方式

指定mam设置T Application数据成员nCmdShow,它对应于^/WinMain参数nCmdShow。您可以在运行后立即设置此变量

函数开始,直到您调用 T Application: :lnitlnstance. 这实际上意味着您可以在 InitApplication 或 InitMainWindow 函数中设置 nCmdShow。

例如,假设您想在用户运行应用程序时最大化显示窗口。您可以在 InitMainWindow 函数中设置 nCmdShow:

包括 ttinclude

类 TMyApplication:公共 TApplication { 公共:

TMyApplication (char far *name) : TApplication (name) {}

无效的初始化主窗口();

1个;■ ■

无效 TMyApplication: : InitMainWindow () {

SetMainWindow(new TFrameWindow ( , "最大窗口") ) ; nCmdShow = SW_SHOWMAXIMIZED;

  • } 整数 '

OwlMain(int argc> char* argv[]) {

,返回 TMyApplication("哇!").Run(); } '

nCmdShow 可以设置为任何适当的值,作为 ShowWindow Windows 函数或 TWindow::Shozv 成员函数的参数,例如 SW_HIDE、SW_SHOWNORMAL、SW_NORMAL 等。

所以,就我而言,nCmdShow = SW_SHOWMAXIMIZED;在我的InitMainWindow ()定义中添加就足够了。

于 2015-04-09T18:53:47.307 回答