六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

更改已經(jīng)打開(kāi)的對(duì)話框的瀏覽路徑

[摘要]最近做的一個(gè)小東西要控制另外一個(gè)程序的文件保存對(duì)話框,目的是讓它只能保存到我指定的位置,:P,我要控制保存的數(shù)據(jù)。 我們知道用CFileDialog很容易設(shè)置對(duì)話框的初始瀏覽路徑,只要在CFileDialog類的OPENFILENAME結(jié)構(gòu)里用自己的目錄改變lpstrInitialDir就可以...
   最近做的一個(gè)小東西要控制另外一個(gè)程序的文件保存對(duì)話框,目的是讓它只能保存到我指定的位置,:P,我要控制保存的數(shù)據(jù)。
   我們知道用CFileDialog很容易設(shè)置對(duì)話框的初始瀏覽路徑,只要在CFileDialog類的OPENFILENAME結(jié)構(gòu)里用自己的目錄改變lpstrInitialDir就可以了:
CFileDialog dlg;
dlg.m_ofn.lpstrInitialDir="c:\\WINDOWS";//這里設(shè)置對(duì)話框的瀏覽目錄
dlg.DoModal();
可我要控制的是一個(gè)已經(jīng)顯示的對(duì)話框,這個(gè)時(shí)候再用m_ofn.lpstrInitialDir來(lái)設(shè)置就沒(méi)有效果啦!我通過(guò)FindWindow找到了這個(gè)對(duì)話框的句柄,
CWnd * pWnd = FindWindow(NULL,"另存為");
if(pWnd)
{
   ....//這里該怎么改呢?
}
最開(kāi)始想的方法就是用鉤子截獲對(duì)話框打開(kāi)時(shí)的消息,在他顯示之前改變他的墨認(rèn)路徑。呵呵,不想這么麻煩,等有時(shí)間再去試。后來(lái)從一個(gè)回帖里找到了一種比較方便的方法。
在實(shí)際操作中,如果我們?cè)谀莻(gè)文件名編輯框中輸入一個(gè)目錄名,然后按確定按鈕,那個(gè)對(duì)話框并沒(méi)有被關(guān)閉,而是切換到那個(gè)新的目錄。通過(guò)這個(gè)方法我們就可以改已經(jīng)顯示了對(duì)話框的瀏覽目錄。具體步驟如下:
1、首先保存那個(gè)文件名編輯框的值
2、在那個(gè)編輯框中設(shè)置新的目錄名
3、模擬鼠標(biāo)單擊“確定”按鈕,這時(shí)候?qū)υ捒蚯袚Q到新的目錄
4、恢復(fù)原來(lái)編輯框的值
這里還需要注意的一點(diǎn)就是第二步設(shè)置目錄的時(shí)候要發(fā)送WM_SETTEXT消息,而不能直接用SetWindowText函數(shù),因?yàn)樗诳邕M(jìn)程使用的時(shí)候有問(wèn)題,沒(méi)有效果。
下面是部分關(guān)鍵代碼:
CWnd * pWnd = FindWindow(NULL,"另存為");
CString sCtrlName;
CWnd *pedit;
CString filename;
TCHAR BUF[512];
if(pWnd)
{
     CWnd *pwnd=pWnd->GetWindow(GW_CHILD);//枚舉保存對(duì)話框的所有子控件
     char *buf=new char[512];
     while(pwnd!=NULL)
    {
         ::GetClassName(pwnd->GetSafeHwnd(),buf,512);//得到枚舉的控件是什么類型的,
         CString str=buf;   
         str.TrimRight();           
         if(str=="Edit")//如果枚舉到保存文件名的EDIT
        {
            pedit=pwnd;//保存EDIT句柄用來(lái)發(fā)消息
            pwnd->SendMessage(WM_GETTEXT,sizeof(BUF)/sizeof(TCHAR),(LPARAM)(void*)BUF);
            filename=BUF;//完成第一步保存原始的文件名
        }
        if(str=="Button")//枚舉到按鈕,有保存和取消按鈕
       {
            pwnd->SendMessage(WM_GETTEXT,sizeof(BUF)/sizeof(TCHAR),(LPARAM)(void*)BUF);
            //發(fā)消息得到按鈕的標(biāo)題
            CString str=BUF;
            str.TrimRight();
            if(str=="保存(&S)")//如果是保存按鈕
            {   
               lstrcpy(BUF,(LPCTSTR)sPath);//sPath表示我們要設(shè)置的對(duì)話框?yàn)g覽目錄
               //發(fā)消息設(shè)置文件名EDIT為我們的路徑名
               pedit->SendMessage(WM_SETTEXT,0,(LPARAM)BUF);
               //發(fā)消息模擬點(diǎn)擊保存按鈕
               ::SendMessage(pwnd->GetSafeHwnd(),WM_LBUTTONDOWN,0,0);
               ::SendMessage(pwnd->GetSafeHwnd(),WM_LBUTTONUP,0,0);
            }
        }
    }
     pwnd = pwnd->GetNextWindow();
}
pedit->SendMessage(WM_SETTEXT,0,(LPARAM)filename);//發(fā)消息還原EDIT里的文件名
delete buf; 


主站蜘蛛池模板: 青青久久精品国产 | 深夜成人福利视频 | 青春草在线观看播放免费视频 | 五月激激激综合网色播免费 | 午夜在线播放 | 日本免费一区视频 | 欧美系列在线观看 | 在线观看日本 | 亚洲精品亚洲人成在线观看麻豆 | 奇米狠狠操 | 日本免费在线一区 | 青青草原手机在线视频 | 啪啪免费小视频 | 日本无人区码卡1 | 日韩午夜激情视频 | 亚洲一区二区三区在线 | 亚州男人的天堂 | 日本亚洲欧美美色 | 亚洲高清视频在线播放 | 网友自拍亚洲 | 日本人视频网站一 | 青青青久在线视频免费观看 | 伊人久久大线蕉香港三级 | 伊人网站在线 | 四虎影院永久网站 | 日本在线视频免费 | 日本一区二区三区在线观看视频 | 天天拍拍夜夜出水 | 日韩精品欧美亚洲高清有无 | 中文字幕亚洲自拍 | 伊人222成人综合网 伊人.com | 色宅男中文字幕亚洲专区 | 热久久久久久久 | 亚洲福利视频一区二区三区 | 欧美亚洲人成网站在线观看刚交 | 日韩亚洲欧美在线 | 色噜噜狠狠色综合免费视频 | 日韩伦理一区 | 日日干日日爽 | 欧美在线香蕉在线现视频 | 欧洲亚洲一区二区三区 |