使用NiftyModeEffects對話方塊,niftymodeeffects
最近看到一篇有關個性對話方塊的文章,裡面介紹了非常酷的動畫效果,開源的項目下載來試試,用法很簡單。
NoftyDialogEffects效果參考:
http://tympanus.net/Development/ModalWindowEffects/
具體使用方法可以參考demo,我把NiftyDialogEffects和NiftyNotification整合到一起,需要的盆友可以下載來看看。
:http://pan.baidu.com/s/1mgqSfXY
怎在一個對話方塊中使用另一個對話方塊中的變數
如果變數不在類中,那麼在另一個對話方塊的cpp中定義extern CString m_path;然後就可以訪問了!
如果變數在類中,那麼設對話方塊A,對話方塊B
CString m_path在A的類裡面
那麼首先在A類中添加一個友元傳參函數,比如PassParam(LPVOID lpParam), 然後在B類中添加一個public變數,比如CString m_path_in_A)。
然後在對話方塊B中調用A對話方塊,並且要在B中訪問A類裡的m_path,那麼
void B::OnOpenWindowA()
{
A dlgA;
A.PassParam(this);
A.DoModal();
//之後B類裡的m_path_in_A就是B類裡的m_path的內容了,你也就可以訪問了!
}
對於A類裡的PassParam(LPVOID lpParam):
void PassParam(LPVOID lpParam)
{
B *dlgB = lpParam;
dlgB->m_path_in_A = m_path;
}
光是把變數設為public是不行的,我給你詳細解釋一下!
假如m_path在A類中,那麼你如果要在B類中使用A類,那麼就一定要:
A xxx; //xxx為變數名
然後A.yyy; //yyy為A類中的成員
這樣看似可以,但是第一局A xxx;的意思是定義變數,這句執行後,xxx內的內容是A類建構函式之後的內容,裡面絕對不包含你想要的m_path的真實值!此時只有用指標A *xxx=yyy;才行!但是在B類向A類傳遞參數的時候,如果你使用了new之類的運算子,也就相當於A xxx一樣,也不會得到期望的東西,唯獨只有傳遞this才可以!一定要this!而傳參函數要傳this而不導致變數重定義,就絕對不能在類裡面,所以傳參函數一定要是友元函數!
明白了吧!
使用MFC實現模態對話方塊
1:“使用資源在主介面添加按鈕,"IDC_CREATE_DIALOG"用來建立模態對話方塊”這句話是說,建立一個ID為IDC_CREATE_DIALOG的按鈕,不是按鈕名字為“IDC_CREATE_DIALOG”的按鈕。
2:右鍵選擇插入資源,或者單擊“插入”菜單,選擇插入資源。彈出一個插入資源的對話方塊,然後添加一個對話方塊資源,添加了之後再修改它的ID。
3:在新添加的對話方塊資源上雙擊,添加一個類。選擇基類為CDiglog。
4:在按鈕上雙擊添加代碼。