Posted on 2006-04-01 22:30
Tauruser 閱讀(4783)
評(píng)論(8) 編輯 收藏 引用
一個(gè)窗體,在窗體上添加了Windows Media Player控件,想實(shí)現(xiàn)窗體大小調(diào)整時(shí),WMP也隨著變化。于是在窗體OnSize()信息下,添加m_wmpplayer.MoveWindow(0,0,cx,cy)函數(shù)。
void
?CSysuTVFormView::OnSize(UINT?nType,?
int
?cx,?
int
?cy)

{
????????CFormView::OnSize(nType,?cx,?cy);

????????
//
?TODO:?在此處添加消息處理程序代碼
????????m_wmpplayer.MoveWindow(
0
,
0
,cx,cy);

}
但是DEBUG時(shí)總是提示出錯(cuò)。如果忽略錯(cuò)誤的話可以正常通過(guò)運(yùn)行,如果才可以讓解決DEBUG時(shí)出現(xiàn)錯(cuò)誤?提示debug assertion failed! 位置如下。
void
?CWnd::MoveWindow(
int
?x,?
int
?y,?
int
?nWidth,?
int
?nHeight,?BOOL?bRepaint)

{
ASSERT(::IsWindow(m_hWnd)?
||
?(m_pCtrlSite?
!=
?NULL));

if
?(m_pCtrlSite?
==
?NULL)
?::MoveWindow(m_hWnd,?x,?y,?nWidth,?nHeight,?bRepaint);
else
m_pCtrlSite
->
MoveWindow(x,?y,?nWidth,?nHeight);
}
另外,運(yùn)行的時(shí)候,如果我變大窗體,沒(méi)有問(wèn)題。但是如果調(diào)小窗體的時(shí)候就會(huì)出現(xiàn)水平和垂直滾動(dòng)條。這并不是我想要的,怎樣才可去掉那兩個(gè)滾動(dòng)條呢?
對(duì)于第一個(gè)問(wèn)題,在CSDN上問(wèn)了三天,還沒(méi)有人給也我解決方案。但是小明給了我一個(gè)解決方案。
在窗體的資源上刪除WMP控件。并在OnCreate()用Create方法創(chuàng)建WMP。
int
?CSysuTVFormView::OnCreate(LPCREATESTRUCT?lpCreateStruct)

{
????
if
?(CFormView::OnCreate(lpCreateStruct)?
==
?
-
1
)
????????
return
?
-
1
;

????m_wmpplayer.Create(NULL,?WS_VISIBLE,?
????CRect(
50
,
50
,
100
,
100
),?
this
,?
0
);
//
????
return
?
0
;
}
這樣子之后,再DEBUG就再?zèng)]有提示報(bào)錯(cuò)了。但是,新的問(wèn)題還是繼續(xù)出現(xiàn)。
隨便再窗體上加一個(gè)控件,如輸入框,按鈕等。DEBUG的時(shí)候,又重新報(bào)錯(cuò)了。當(dāng)然RELEASE時(shí)沒(méi)有報(bào)錯(cuò)。繼續(xù)想不明白中……
對(duì)于第二個(gè)問(wèn)題,問(wèn)過(guò)學(xué)校教MFC的一個(gè)老師,他倒是給我這樣的答復(fù)。這個(gè)答復(fù)和PX給我的一樣。都是跟我說(shuō),網(wǎng)絡(luò)電視的界面并不一定要提供可以自由拉伸的功能。只要可以提供固定大小,和全屏播放就行了。再一方面說(shuō),很多這方面的軟件,為了美觀對(duì)是要求固定大小的。
所以,在考慮因定大小中。但這個(gè)問(wèn)題總應(yīng)該有解決的方法,不能因?yàn)檫@樣就放棄去了解如果解決這個(gè)問(wèn)題吧。