青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

VC學習筆記9:幾個指針

為了在視類中能夠調用放在其它類中的數據或函數,應該先獲得相應類的指針。

1、指向文檔類(CxxDoc)的指針:
CxxDoc*pDoc = GetDocument();//文檔指針
則用pDoc->xxxx的方法可在視類中訪問文檔類中的變量和函數。

2、指向應用程序類(CxxApp)的指針:
CxxApp*app = (CxxApp *)AfxGetApp();//應用程序指針
用app->xxxx的方法可在文檔類或視類中調用CxxApp中放置的數據了。
我一般把文檔和視公用的數據放在CxxApp類中,再用以上方法訪問。

3、指向主框架(CMainFrame)的指針:
CFrameWnd *pFrameWnd=GetParentFrame();//獲取框架窗口指針
用pFrameWnd->xxxx訪問CWnd類的函數。
這種方法多用于獲取窗口的位置、大小等操作,用于視類。

4、指向某一控件的指針:
如:CWnd *pEdit = GetDlgItem(IDC_EDIT1); //獲取編輯控件指針
IDC_EDIT1為控件ID號。
這主要是為了能修改控件大小、位置,獲取控件風格等。

5、指向狀態條的指針:
CStatusBar* pStatus;//狀態欄指針
pStatus=(CStatusBar *)(app->m_pMainWnd->GetDescendantWindow(ID_VIEW_STATUS_BAR));
app為上面的應用程序指針。
這主要是為了更改狀態欄中顯示的內容。


VC學習筆記10:狀態欄:

1、在狀態欄中顯示提示:
CxxApp*app = (CxxApp *)AfxGetApp();//應用程序指針
CStatusBar* pStatus;//狀態欄指針
if(pStatus)
{
pStatus=(CStatusBar *)(app->m_pMainWnd->GetDescendantWindow(ID_VIEW_STATUS_BAR));
pStatus->SetPaneText(0,str);//0為狀態欄窗格號,str為顯示的字符串
}

2、在狀態欄中增加窗格:

下例中增加了三個新窗格:
(1)修改MainFrm.cpp:

static UINT indicators[] =
{
ID_SEPARATOR,// status line indicator

ID_SEPARATOR,//新增窗格1:放置總字節數
ID_SEPARATOR,//新增窗格2:半角字數
ID_SEPARATOR,//新增窗格3:全角字數

ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1;// fail to create
}

if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1;// fail to create
}

m_wndStatusBar.SetPaneInfo(1,ID_SEPARATOR,0,95); //設置新增窗格1的寬度
m_wndStatusBar.SetPaneInfo(2,ID_SEPARATOR,0,100); //設置新增窗格2的寬度
m_wndStatusBar.SetPaneInfo(3,ID_SEPARATOR,0,100); //設置新增窗格3的寬度

…………
}

(2)在新窗格中顯示內容

以下程序為視類中顯示狀態信息的部分,
CStatusBar *pStatus=(CStatusBar *)AfxGetApp()->m_pMainWnd->GetDescendantWindow(ID_VIEW_STATUS_BAR);
if(pStatus)
{
CString str;
str.Format("字節數:%d",len);
pStatus->SetPaneText(1,str);//在窗格1顯示內容
str.Format("半角字符:%d",chnum);
pStatus->SetPaneText(2,str);//在窗格2顯示內容
str.Format("全角字符:%d",hannum/2);
pStatus->SetPaneText(3,str);//在窗格3顯示內容
}


VC學習筆記11:設置程序窗口的初始大小:

在應用程序類(CxxAPP)的 InitInstance 函數中加入:
m_pMainWnd->SetWindowPos(NULL,x,y,Width,Height,SWP_NOMOVE);
Width為窗口寬度,Height為窗口高度
SWP_NOMOVE表示忽略位置(x,y)。

如:
BOOL CDzyApp::InitInstance()
{
AfxEnableControlContainer();

……

// The one and only window has been initialized, so show and update it.
m_pMainWnd->SetWindowPos(NULL,0,0,750,555,SWP_NOMOVE);//設置窗口的初始大小為750*555

m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();

return TRUE;
}


VC學習筆記12:如何讓窗口一啟動就最大化?

方法一:

將應用程序類(CxxAPP)的 InitInstance 函數中的

m_pMainWnd->ShowWindow(SW_SHOW); 改為
m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED); //讓窗口一啟動就最大化

例:
BOOL CMyEditApp::InitInstance()
{
…………

m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);

…………
}

方法二:

在應用程序類(CxxAPP)的 InitInstance 函數中設定 m_nCmdShow的取值.
m_nCmdShow=SW_SHOWMAXIMIZED; //最大化
m_nCmdShow=SW_SHOWMINIMIZED; //最小化
m_nCmdShow=SW_SHOWNORMAL; //正常方式

例:
BOOL CMyEditApp::InitInstance()
{
AfxEnableControlContainer();
m_nCmdShow=SW_SHOWMAXIMIZED; //最大化
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.

#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif

…………
}


VC學習筆記13:使窗口打開時處于屏幕正中:

在MainFrm.cpp文件的OnCreate函數中加入:
CenterWindow( GetDesktopWindow() );
即可。

如:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
……

// TODO: Delete these three lines if you don't want the toolbar to
// be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);

CenterWindow( GetDesktopWindow() ); //使窗口打開時處于屏幕正中

return 0;
}


VC學習筆記14:修改程序窗口標題:

窗口標題一般形式為:文檔標題 - 程序標題

1、修改文檔標題:
文檔標題是由工程中相應的文檔類所控制的,因此我們可以在文檔中利用SetTitle()函數來改變文檔標題。
在文檔類的OnNewDocument()函數中加入語句:
BOOL CWEditDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;

// TODO: add reinitialization code here
// (SDI documents will reuse this document)
SetTitle("未命名");//設置文檔標題

return TRUE;
}

2、修改程序標題:
在MainFrm.cpp的PreCreateWindow()函數中加入:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
//the CREATESTRUCT cs
m_strTitle = _T("記事本");//設置程序標題

cs.style = WS_OVERLAPPED | WS_CAPTION | FWS_ADDTOTITLE
| WS_THICKFRAME | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_MAXIMIZE;

return TRUE;
}
以上兩條比較適合于窗口標題是固定值的情況,或用來設置初始時的窗口標題。若標題經常改變,可采用CWnd類的SetWindowText()函數。

3、修改整個標題:
AfxGetMainWnd()->SetWindowText(m_Title);
m_Title為新標題的字符串變量

一般把該語句放在應用程序類的 InitInstance 函數中。

例:
BOOL CMyEditApp::InitInstance()
{
AfxEnableControlContainer();

…………

m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();

AfxGetMainWnd()->SetWindowText("未命名.txt - 記事本"); //修改標題

return TRUE;
}
該函數也可在視圖類中隨時修改標題。
Posted on 2005-11-15 14:53 艾凡赫 閱讀(1476) 評論(0)  編輯 收藏 引用 所屬分類: MFC技術
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美中文字幕视频| 久久网站热最新地址| 一区二区欧美在线| 亚洲精品视频中文字幕| 亚洲久久视频| 一本久道久久综合婷婷鲸鱼| 欧美三级欧美一级| 国产精品wwwwww| 亚洲毛片一区二区| 欧美国产日韩免费| 久久在线免费视频| 韩日精品视频一区| 久久国产日本精品| 久久成人精品视频| 国产亚洲一区二区三区| 久久精品毛片| 欧美一级久久| 激情久久综合| 久久天堂成人| 久久婷婷丁香| 亚洲激情社区| 亚洲欧洲一区二区三区在线观看| 极品中文字幕一区| 一区二区久久久久久| 欧美在线观看www| 亚洲成色www8888| 久久综合国产精品台湾中文娱乐网| 欧美福利在线观看| 欧美电影免费观看高清完整版| 亚洲精品九九| 亚洲天堂成人| 国产婷婷色一区二区三区四区| 久久成人18免费网站| 久久大香伊蕉在人线观看热2| 精品不卡在线| 亚洲激情视频在线| 欧美日韩一区综合| 欧美亚洲综合另类| 久久久视频精品| 日韩一级裸体免费视频| 亚洲视频在线观看三级| 国产亚洲精品福利| 欧美va天堂va视频va在线| 国产精品看片你懂得| 亚洲欧美韩国| 欧美亚洲午夜视频在线观看| 亚洲男女毛片无遮挡| 国精品一区二区| 欧美激情亚洲精品| 亚洲人成网站在线播| 亚洲福利视频一区| 久久久久久电影| 国产精品亚洲片夜色在线| 亚洲日本欧美在线| 免费欧美在线视频| 久久精品视频免费播放| 国产精品日韩精品欧美在线| 99精品视频免费观看| 欧美激情视频一区二区三区不卡| 欧美有码在线视频| 国产真实精品久久二三区| 欧美一级一区| 亚洲欧美视频| 国产亚洲制服色| 久久久7777| 欧美在线观看视频在线| 国产丝袜一区二区三区| 久久国产精品久久久| 亚洲欧美日韩网| 国产精品亚洲成人| 欧美中文字幕在线| 久久国产99| 亚洲福利在线观看| 亚洲国产精品一区制服丝袜 | 久久久久久自在自线| 国产欧美精品国产国产专区| 性一交一乱一区二区洋洋av| 亚洲美女在线视频| 国产精品xnxxcom| 欧美一区午夜精品| 久久精品女人| 日韩午夜在线| 亚洲一区不卡| 影音先锋中文字幕一区| 欧美激情视频一区二区三区在线播放 | 亚洲国产天堂久久综合网| 欧美风情在线| 欧美激情精品久久久久久| 亚洲午夜精品久久久久久浪潮| 亚洲一级在线观看| 精品不卡一区| 99热这里只有精品8| 国产午夜久久| 亚洲第一精品久久忘忧草社区| 欧美日韩国产一区二区| 美女图片一区二区| 美腿丝袜亚洲色图| 艳女tv在线观看国产一区| 一区二区三区黄色| 韩国一区二区三区美女美女秀| 女主播福利一区| 欧美日韩在线一区| 美女国产一区| 国产精品久久久久婷婷| 久久久久久久久久久一区| 欧美国产欧美综合| 欧美一区二区观看视频| 美女黄网久久| 欧美一区二区三区四区在线| 久久久亚洲国产美女国产盗摄| 宅男噜噜噜66国产日韩在线观看| 欧美中文字幕在线播放| 一区二区三区免费网站| 久久久久久一区二区| 亚洲在线视频免费观看| 免费久久99精品国产自| 欧美在线观看你懂的| 欧美日韩国产成人在线| 免费亚洲电影| 国产亚洲一区在线播放| 一区二区三区四区五区精品| 亚洲国产日韩欧美在线动漫| 欧美影院在线| 欧美中文在线观看国产| 欧美视频一区二区三区…| 亚洲福利在线观看| 一区视频在线看| 午夜宅男久久久| 亚洲综合99| 欧美午夜寂寞影院| 99国产精品99久久久久久粉嫩| 亚洲激情社区| 欧美成人69av| 欧美激情成人在线| 一区二区视频免费在线观看| 亚洲欧美欧美一区二区三区| 亚洲欧美成人网| 欧美激情性爽国产精品17p| 亚洲福利专区| 日韩系列欧美系列| 欧美日韩国产va另类| 亚洲毛片一区二区| 中文精品视频| 国产精品v欧美精品∨日韩| 一本大道久久精品懂色aⅴ| 中国亚洲黄色| 国产精品久久久久久久久久久久| 99在线观看免费视频精品观看| 一区二区欧美国产| 欧美日韩在线播| 亚洲一区一卡| 久久久av水蜜桃| 在线观看欧美| 欧美电影电视剧在线观看| 亚洲三级色网| 亚洲欧美国产精品va在线观看| 国产精品大全| 欧美专区中文字幕| 免费在线观看日韩欧美| 亚洲韩国一区二区三区| 欧美人与性禽动交情品| 亚洲无人区一区| 久久天天躁狠狠躁夜夜爽蜜月| 欧美高潮视频| 欧美粗暴jizz性欧美20| 欧美激情一二区| 99精品欧美一区二区三区综合在线 | 一区二区亚洲精品国产| 麻豆视频一区二区| 亚洲久久视频| 久久大逼视频| 亚洲日韩中文字幕在线播放| 欧美日本乱大交xxxxx| 亚洲一区三区视频在线观看| 农夫在线精品视频免费观看| 欧美成人一二三| 欧美在线亚洲一区| 欧美三级日本三级少妇99| 国产区精品视频| 亚洲午夜激情免费视频| 亚洲精品国产精品乱码不99| 香蕉久久夜色精品国产使用方法 | 欧美亚洲免费| 国产精品wwwwww| 99国产精品私拍| 91久久精品日日躁夜夜躁欧美| 久久gogo国模裸体人体| 国产精品一区二区三区乱码| 黄色一区二区在线观看| 亚洲最新在线视频| 欧美国产日韩二区| 亚洲激情小视频| 亚洲精品女av网站| 午夜精品在线视频| 久久久天天操| 欧美国产日本在线| 中文国产成人精品久久一| 欧美一区二区在线| 亚洲欧美精品伊人久久| 国产在线成人|