onupdate 调用frametitle 函数什么时候被框架调用

如何设置窗口的标题栏里的标题【转】
MFC程序的默认的标题是“无标题-title”,其中title是应用程序的名称,我们应如何修改MFC窗口标题来符合自己的要求?
&&&&MFC程序的文档类中定义了一个虚函数SetTitle,用于设置窗口标题的前半部分,如果只是要修改“无标题”部分,可以重载文档类的该函数。窗口标题&的后半部分可以通过SetWindowText设置,也可以编辑字符串资源中的IDR_MAINFRAME字符串,将第一个"n之前的字符串替换掉即可,&而如果你想把“无标题”部分除掉,则必须修该窗口的风格。
一、修改前半部分
1)&可以重载文档类的虚函数SetTitle
void&CTestDoc::SetTitle(LPCTSTR&lpszTitle)
&&&CDocument::SetTitle(L"你的标题");
也可以在&CTestDoc::OnNewDocument()中添加SetTitle(L"你的标题");
二、修改后半部分
1)&修改资源字符串:
将资源文件中的IDR_MAINFRAME修改为
修改此处"n"nChange"n"n"nChangeTitle.Document"nChange&Document
资源字符串中各子串的含义可以参考:IDR_MAINFRAME字符串资源中各子串的含义
2)&使用框架窗口类的SetWindowText(L"你的标题"):
在应用程序类CTestApp::InitInstance()中调用如下语句
m_pMainWnd-&SetWindowText(L"你的标题");
或者在其他地方用AfxGetMainWnd()-&SetWindowText(L"你的标题");
3)&如果您想除掉标题中间的“-”,
可以通过重CFramWnd类的OnUpdateFrameTitle函数,这个函数在VC提供的帮助文件中找不到,必须手工添加
virtual&void&OnUpdateFrameTitle(BOOL&NaDa);
void&CMainFrame.:OnUpdateFrameTitle(BOOL&NaDa)
CString&csAppN
csAppName.Format(AFX_IDS_APP_TITLE);
SetWindowText(csAppName);
此时显示的结果只有字符串资源AFX_IDS_APP_TITLE所定义的字符串
4)&是在CMainFrame的PreCreateWindow函数中修改窗口风格:
BOOL&CMainFrame.:PreCreateWindow(CREATESTRUCT&&cs)
&&&&&&&&&&cs.style.&&=&~(LONG)&FWS_ADDTOTITLE;
&&&&&&&&&&return&CFrameWnd::PreCreateWindow(cs);
使用此方法,窗口的标题只显示IDR_MAINFRAME字符串中第一个"n之前的部分
修改MFC标题栏上的图标
HICON&m_hI
在MainFrm的OnCreate()里
m_hIcon&=&AfxGetApp()-&LoadIcon(IDR_MAINFRAME);
SetIcon(m_hIcon,&TRUE);&//&Set&big&icon
SetIcon(m_hIcon,&FALSE);&//&Set&small&icon
IDR_MAINFRAME字符串资源中各子串的含义
IDR_MAINFRAME字符串资源中包含7个子串,分别以"n结束,即如下格式:
"n"n"n"n"n"n"n&
(1)CDocTemplate::windowTitle,主窗口标题栏上的字符串,MDI程序不需要指定,将以IDR_MAINFRAME字符串为默认值。&
(2)CDocTemplate::docName,缺省文档的名称。如果没有指定,缺省文档的名称是无标题。&
(3)CDocTemplate::fileNewName,文档类型的名称。如果应用程序支持多种类型的文档,此字符串将显示在"File/New"对话框中。如果没有指定,就不能够在"File/New"对话框处理这种文件。&
(4)CDocTemplate::filterName,文档类型的描述和一个适用于此类型的通配符过滤器。这个字符串将出现在“File/Open”对话框中的文件类型列表框中。要和CDocTemplate::filterExt一起使用。&
(5)CDocTemplate::filterExt,文档的扩展名。如果没有指定,就不能够在“File/Open"
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。QFrame类参考
QFrame类是有框架的窗口部件的基类。
#include &&
被、、、、、、、、、、、、和继承。
( QWidget&*&parent = 0, const&char&*&name = 0, WFlags&f = 0 )
virtual void
( int&style )
{ NoFrame = 0, Box = 0x0001, Panel = 0x0002, WinPanel = 0x0003, HLine = 0x0004, VLine = 0x0005, StyledPanel = 0x0006, PopupPanel = 0x0007, MenuBarPanel = 0x0008, ToolBarPanel = 0x0009, LineEditPanel = 0x000a, TabWidgetPanel = 0x000b, MShape = 0x000f }
{ Plain = 0x0010, Raised = 0x0020, Sunken = 0x0030, MShadow = 0x00f0 }
( Shadow )
virtual void
virtual void
virtual void
virtual void
( const QRect & )
QRect &- 框架内的矩形&(只读)
QRect &- 框架矩形
Shadow &- 来自框架风格的框架阴影值
Shape &- 来自框架风格的框架外形值
int &- 被绘制的框架的宽度&(只读)
int &- 线宽
int &- 边白的宽度
int &- 中间的线的宽度
virtual void
( QPaintEvent&*&event )
virtual void
( QResizeEvent&*&e )
virtual void
( QPainter&*&p )
virtual void
( QPainter * )
virtual void
QFrame类是有框架的窗口部件的基类。
它绘制框架并且调用一个虚函数()来填充这个框架。这个函数是被子类重新实现的。这里至少还有两个有用的函数:()和()。
使用这个来把菜单“升高”,高于周围屏幕。有“凹陷”的外观。有平坦的外观。这些有框架的窗口部件可以被改变。
label(...);
label.( QFrame:: | QFrame:: );
label.( 2 );
pbar(...);
label.( QFrame:: );
QFrame类也能够直接被用来创建没有任何内容的简单框架,尽管通常情况下,你要用到或,因为它们可以自动的布置你放到框架中的窗口部件。
框架窗口部件有四个属性:()、()、()和()。
框架风格由和决定。框架外形有、、、、、、、、和,阴影风格有、和。
线宽就是框架边界的宽度。
中间线宽指定的是在框架中间的另外一条线的宽度,它使用第三种颜色来得到一个三维的效果。注意中间线只有在、和这些凸起和凹陷的框架中才被绘制。
边白就是框架和框架内容之间的间隙。
这个表显示的是风格和宽度的绝大多数有用的组合(和一些没有用处的):
也可以参考。
成员类型文档
QFrame::Shadow
这个枚举类型定义了QFrame的框架所使用的三维效果。当前定义的效果有:
QFrame::Plain - 框架和内容看来和周围一样高
QFrame::Raised - 框架和内容看起来凸起
QFrame::Sunken - 框架和内容看起来凹陷
QFrame::MShadow - 内部的,对于阴影的掩码
Shadow和QFrame::Shape、()和()相互作用。类文档中的描绘的比这些词语更好。
也可以参考、和。
QFrame::Shape
这个枚举类型定义了QFrame的框架所使用的外形。当前定义的效果有:
NoFrame - QFrame不画任何东西
Box - QFrame在它的内容周围画一个框
Panel - QFrame画一个平板使内容看起来凸起或者凹陷
WinPanel - 像,但QFrame绘制三维效果的方式和Microsoft Windows 95(及其它)的一样
ToolBarPanel - QFrame调用QStyle::drawToolBarPanel()
MenuBarPanel - QFrame调用QStyle::drawMenuBarPanel()
HLine - QFrame绘制一个水平线,但没有框任何东西(作为分隔是有用的)
VLine - QFrame绘制一个竖直线,但没有框任何东西(作为分隔是有用的)
StyledPanel - QFrame调用QStyle::drawPanel()
PopupPanel - QFrame调用QStyle::drawPopupPanel()
当它不调用时,Shape和QFrame::Shadow、()和()相互作用来创建整个结果。类文档中的描绘的比这些词语更好。
也可以参考、()和()。
成员函数文档
QFrame::QFrame ( &*&parent = 0, const&char&*&name = 0, WFlags&f = 0 )
构造一个框架风格为并且1像素框架宽度的框架窗口部件。
parent、name和f参数被传递给的构造函数。
QFrame::contentsRect () const
返回框架内的矩形。详细情况请参考属性。
void QFrame::drawContents ( &* ) [虚 保护]
绘制框架内容的虚函数。
当你得到时,它已经被打开,并且在你离开时,它也必须是打开的。绘制工具的在真个过程中是被关闭的。如果你转换绘制工具,记得考虑框架并且在返回前。
这个函数在子类中被重新实现用来绘制框架中的一些东西。它只能在()内绘制。默认函数什么都不做。
也可以参考和()。
在、a href="qlcdnumber.html#drawContents">QLCDNumber、和中重新实现。
void QFrame::drawFrame ( &*&p ) [虚 保护]
使用绘制工具p和当前框架属性和颜色组绘制框架。框架内的矩形不受影响。
这个函数是虚函数,但通常情况下你不需要重新实现它。如果你要做,注意已经被打开并且必须保持打开的状态。
也可以参考、、()、a href="#frameStyle">frameStyle()和。
void QFrame::frameChanged () [虚 保护]
当框架风格、线宽和中间线宽发生改变时,这个虚函数被调用。
这个函数在子类中可以被重新实现,它需要知道什么时候框架属性发生变化。
默认实现是调用()。
QFrame::frameRect () const
返回框架矩形。详细情况请参考属性。
QFrame::frameShadow () const
返回来自框架风格的框架阴影值。详细情况请参考属性。
QFrame::frameShape () const
返回来自框架风格的框架外形值。详细情况请参考属性。
int QFrame::frameStyle () const
返回框架风格。
默认值是QFrame::NoFrame。
也可以参考()、和。
int QFrame::frameWidth () const
返回所绘制的框架的宽度。详细情况请参考属性。
int QFrame::lineWidth () const
返回线宽。详细情况请参考属性。
int QFrame::margin () const
返回边白的宽度。详细情况请参考属性。
int QFrame::midLineWidth () const
返回中间线的宽度。详细情况请参考属性。
void QFrame::paintEvent ( &*&event ) [虚 保护]
处理绘制事件event。
绘制框架和内容。
打开框架上的绘制工具并且调用(),然后是()。
实例:和。
从中重新实现的。
在a href="qttableview.html#paintEvent">QtTableView中被重新实现。
void QFrame::resizeEvent ( &*&e ) [虚 保护]
处理重定义大小事件e。
对于被重新定义大小的窗口部件,调整框架矩形。框架矩形是弹性的,并且周围的区域是固定的。
结果框架矩形也许是零或者无效。你可以使用()来避免这种可能。
如果框架矩形已经是一个,那么将不会做任何事。
从中重新实现的。
void QFrame::setFrameRect ( const&&& ) [虚]
设置框架矩形。详细情况请参考属性。
void QFrame::setFrameShadow (
设置来自框架风格的框架阴影值。详细情况请参考属性。
void QFrame::setFrameShape (
设置来自框架风格的框架外形值。详细情况请参考属性。
void QFrame::setFrameStyle ( int&style ) [虚]
设置框架风格为style。
style是框架外形和框架阴影风格的位或操作。详细情况请参考类文档中的。
框架外形有:
NoFrame不绘制任何东西。自然地,如果你使用这个,你就不用指定阴影风格。
Box绘制矩形框。内容看起来和周围的屏幕一样高,但是边界本身也许凸起或凹陷。
Panel绘制矩形凸起或凹陷的平板。
StyledPanel绘制一个依赖于当前GUI风格的矩形平板。它可能是凸起的,也可能是凹陷的。
PopupPanel是用来绘制用于弹出窗口的框架。它的外观也依赖于当前GUI风格,通常和一样。
ToolBarPanel是用来绘制用于工具条的框架。它的外观也依赖于当前GUI风格。
MenuBarPanel是用来绘制用于菜单条的框架。它的外观也依赖于当前GUI风格。
LineEditPanel是用来绘制用于行编辑的框架。它的外观也依赖于当前GUI风格。
TabWidgetPanel是用来绘制用于Tab窗口部件的框架。它的外观也依赖于当前GUI风格。
WinPanel绘制一个和Windows 95中一样的凸起或凹陷的矩形平板。指定这个外形设置线宽为2像素。WinPanel的提供是为了兼容性。为了使GUI风格独立,我们建议使用StyledPanel替换它。
HLine绘制一条水平线(垂直中央)。
VLine绘制一条垂直线(水平中央)。
阴影风格有:
Plain使用调色板的前景颜色绘制(没有任何三维效果)。
Raised使用当前颜色组的亮和暗颜色绘制三维的凸起线。
Sunken使用当前颜色组的亮和暗颜色绘制三维的凹陷线。
如果被指定的中间线宽大于0,在或、÷和框架中会被绘制一条另外的线。当前颜色组的中间颜色被用于绘制中间线。
也可以参考、()、和。
实例:、、、、、和。
void QFrame::setLineWidth ( int ) [虚]
设置线宽。详细情况请参考属性。
void QFrame::setMargin ( int ) [虚]
设置边白的宽度。详细情况请参考属性。
void QFrame::setMidLineWidth ( int ) [虚]
设置中间线的宽度。详细情况请参考属性。
contentsRect
这个属性保存的是框架内的矩形。
使用()来得到这个属性值。
也可以参考和()。
这个属性保存的是框架矩形。
框架矩形是被画的框架所在的矩形。默认情况下,这是整个窗口部件。设置这个属性不会导致窗口部件更新。
如果这个属性被设置为零矩形(比如QRect(0, 0, 0, 0)),那么框架矩形将会等于。
也可以参考。
使用()来设置这个属性值并且使用()来得到这个属性值。
frameShadow
这个属性保存的是来自框架风格的框架阴影值。
使用()来设置这个属性值并且使用()来得到这个属性值。
也可以参考()和。
frameShape
这个属性用来操存的是来自框架风格的框架外形值。
使用()来设置这个属性值并且使用()来得到这个属性值。
也可以参考()和。
int frameWidth
这个属性保存的是被绘制的框架的宽度。
注意框架宽度依赖于,线宽和中间线宽。比如,风格下,框架宽度为0,而风格下,框架宽度和线宽相同。框架宽度也包括边白。
也可以参考、、()和。
使用()来得到这个属性值。
int lineWidth
This property holds the line width.
这个属性保存的是线宽。
注意和的总线宽由()给定,而不是()。
默认值为1。
也可以参考和。
使用()来设置这个属性值并且使用()来得到这个属性值。
int margin
这个属性保存的是边白的宽度。
边白是框架最里面的像素和()最外面的像素之间的区域。它被包含在()中。
边白是根据()被填充的。
默认值为0。
也可以参考和。
使用()来设置这个属性值并且使用()来得到这个属性值。
int midLineWidth
这个属性保存的是中间线的宽度。
默认值为0。
也可以参考和。
使用()来设置这个属性值并且使用()来得到这个属性值。
这个文件是一部分。
版权所有 &
。保留所有权利。
Copyright & 2002
Qt 3.0.5版onupdateframetitle 函数什么时候被框架调用_百度知道

我要回帖

更多关于 ios titleview frame 的文章

 

随机推荐