亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

如何實現大圖標風格的打開對話框

2019-11-17 05:33:27
字體:
來源:轉載
供稿:網友
默認情況下,打開對話框的文件列表的樣式是列表樣式,要實現一打開放大框就自動是大圖標風格,需要在打開對話框顯示在屏幕上以前,找到該文件列表控件(SysListView32)的句柄,然后改變其風格就可以了。

標準ListView控件有四種樣式,分別如下:
  LVS_ICON       0x0000 大圖標樣式
  LVS_REPORT     0x0001 具體資料樣式
  LVS_SMALLICON  0x0002 小圖標樣式
  LVS_LIST       0x0003 列表樣式

以前ccrun曾在csdn回答過一位網友的問題,正好有一些代碼,比較簡單,ccrun就沒有加注釋。嘿嘿。
在Form上放置一個TButton,一個TOpenDialog。然后添加以下代碼:
.h 文件中:
public:        // User declarations
    void __fastcall OpenDialogShow(TObject *Sender);
    void __fastcall OpenDialogClose(TObject *Sender);

.cpp 文件中:
//---------------------------------------------------------------------------
FARPROC OldDlgOpenProc = NULL;
static LRESULT CALLBACK NewDlgOpenProc(
        HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
//---------------------------------------------------------------------------
static LRESULT CALLBACK NewDlgOpenProc(
        HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    if(uMsg == WM_UPDATEUISTATE)
    {
        HWND hShell = FindWindowEx(GetParent(hWnd), NULL, "SHELLDLL_DefView", NULL);
        HWND hListView = FindWindowEx(hShell, NULL, "SysListView32", NULL);
        if(hListView)
        {
            SetWindowLong(hListView, GWL_STYLE,
                    GetWindowLong(hListView, GWL_STYLE) & 0xFFFFFFF0  LVS_ICON);
        }
    }
    return CallWindowProc((FARPROC)OldDlgOpenProc, hWnd, uMsg, wParam, lParam);
}
//---------------------------------------------------------------------------
// 本文來自 http://www.ccrun.com
// 歡迎光臨 C++ Builder 研究
// 作者: ccrun(老妖)
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
    : TForm(Owner)
{
    OpenDialog1->OnClose = OpenDialogClose;
    OpenDialog1->OnShow = OpenDialogShow;
    Button1->OnClick = Button1Click;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::Button1Click(TObject *Sender)
{
    OpenDialog1->Execute();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::OpenDialogShow(TObject *Sender)
{
    OldDlgOpenProc = (FARPROC)SetWindowLong(
            OpenDialog1->Handle, GWL_WNDPROC, (long)NewDlgOpenProc);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::OpenDialogClose(TObject *Sender)
{
    SetWindowLong(OpenDialog1->Handle, GWL_WNDPROC, (long)OldDlgOpenProc);
}
//---------------------------------------------------------------------------

后來ccrun偶然發現,還有更簡單的方法:
//---------------------------------------------------------------------------
// 本文來自 http://www.ccrun.com
// 歡迎光臨 C++ Builder 研究
// 作者: ccrun(老妖)

const DWord FCIDM_SHVIEW_LARGEICON  = 28713; // 大圖標模式
const DWORD FCIDM_SHVIEW_SMALLICON  = 28714; // 小圖標模式
const DWORD FCIDM_SHVIEW_LIST       = 28715; // 列表模式
const DWORD FCIDM_SHVIEW_REPORT     = 28716; //
const DWORD FCIDM_SHVIEW_THUMBNAIL  = 28717; // XP only
const DWORD FCIDM_SHVIEW_TILE       = 28718; // XP
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
    : TForm(Owner)
{
    // 指定打開對話框在顯示出來時執行的事件
    OpenDialog1->OnShow = dlgOpenOnShow;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::WndProc(TMessage &Msg)
{
    // 重載WndProc實現消息的自定義處理
    if(Msg.Msg == WM_USER + 1)
    {
        // 文件列表是一個ListView控件,其父控件關系如下:
        // TOpenDialog-->SHELLDLL_DefView-->SysListView32
        HWND hDlg = (HWND)Msg.WParam;
        HWND hCtrl = FindWindowEx(hDlg, NULL, "SHELLDLL_DefView", NULL);
        <


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产91色在线| 国产成人福利夜色影视| 久久国产精品久久久久久| 亚洲四色影视在线观看| 国产亚洲欧美另类中文| 日韩av毛片网| zzijzzij亚洲日本成熟少妇| 成人激情视频小说免费下载| 69久久夜色精品国产7777| 国产97在线播放| 欧美午夜影院在线视频| 国产精品女人网站| 日韩在线视频一区| 亚洲天堂一区二区三区| 4444欧美成人kkkk| 欧美精品18videos性欧| 最新国产精品亚洲| 欧美成人免费全部| 精品国产一区二区在线| 少妇精69xxtheporn| 91久久国产婷婷一区二区| 亚洲女成人图区| 亚洲网站在线看| 日韩欧美中文第一页| 色妞欧美日韩在线| 日韩电影大全免费观看2023年上| 日韩在线视频免费观看高清中文| 色综合久综合久久综合久鬼88| 欧美成人免费一级人片100| 成人国内精品久久久久一区| 亚洲欧美视频在线| 欧美黑人视频一区| 亚洲国产精品va| 欧美激情亚洲激情| 午夜精品蜜臀一区二区三区免费| 最新国产精品拍自在线播放| 国产成人jvid在线播放| 成人精品久久一区二区三区| 国产精品三级美女白浆呻吟| 国产中文字幕日韩| 欧美激情中文网| 国产999精品久久久影片官网| 亚洲国产精品久久久久久| 青青精品视频播放| 日韩免费电影在线观看| 精品免费在线观看| 亚洲美女av在线播放| 日韩欧美国产激情| 中文精品99久久国产香蕉| 亚洲色图校园春色| 久久久久亚洲精品国产| 色系列之999| 日韩电影在线观看免费| 欧美视频专区一二在线观看| 97精品国产97久久久久久免费| 欧美巨乳在线观看| 亚洲一区中文字幕在线观看| 亚洲精品av在线| 91精品国产综合久久香蕉| 成人福利视频网| 日韩色av导航| 亚洲国模精品一区| 97香蕉久久超级碰碰高清版| 精品久久久一区| 欧美在线一区二区三区四| 色偷偷av一区二区三区| 欧美成人精品在线播放| 97香蕉久久超级碰碰高清版| 欧美成aaa人片在线观看蜜臀| 国产精品中文字幕在线| 91国自产精品中文字幕亚洲| 亚洲性线免费观看视频成熟| 国产在线一区二区三区| 亚洲国产精品久久久久秋霞蜜臀| 国产成人精品日本亚洲专区61| 国产日产亚洲精品| 成人有码在线视频| 精品女同一区二区三区在线播放| 姬川优奈aav一区二区| 久久久久久久久中文字幕| 久久久精品在线观看| 亚洲欧美在线一区二区| 亚洲国产91精品在线观看| 亚洲成人精品视频| 精品久久久国产精品999| 国产欧美一区二区三区久久| 中文字幕日本精品| 国产香蕉97碰碰久久人人| 国产精品久久91| 国产精品久久婷婷六月丁香| 欧美在线不卡区| 最近2019年好看中文字幕视频| 亚洲自拍av在线| 亚洲人线精品午夜| 欧美一级大胆视频| 亚洲成人网在线| 91国语精品自产拍在线观看性色| 亚洲欧美中文在线视频| 亚洲男人天堂久| 久久亚洲国产成人| 成人免费淫片视频软件| 日韩av最新在线观看| 精品激情国产视频| 成人性生交大片免费看视频直播| 国产精品99免视看9| 81精品国产乱码久久久久久| 欧美多人乱p欧美4p久久| 国产精品美女主播在线观看纯欲| 91探花福利精品国产自产在线| 欧美日韩国产一区二区| 亚洲高清福利视频| 日韩精品中文字幕在线播放| 黑人巨大精品欧美一区二区三区| 国产91在线播放九色快色| 国产精品女主播视频| 欧美日韩人人澡狠狠躁视频| 国产一区二区三区在线看| 中文字幕免费精品一区高清| 国产午夜精品麻豆| 在线亚洲男人天堂| 日韩av一区在线| 韩国福利视频一区| 韩国19禁主播vip福利视频| 九九热这里只有精品6| 日韩高清不卡av| 亚洲高清一二三区| 欧美精品免费在线观看| 亚洲欧美福利视频| 中文字幕亚洲字幕| 日韩在线视频免费观看| 日韩女优人人人人射在线视频| 97在线视频免费播放| 中文字幕精品久久久久| 欧洲美女免费图片一区| 91欧美精品午夜性色福利在线| 国产精品香蕉在线观看| 亚洲丝袜在线视频| 午夜精品视频在线| 久久视频在线观看免费| xx视频.9999.com| 欧美极品美女电影一区| 亚洲最大在线视频| 亚洲影院高清在线| 91精品久久久久久久久| 国产精品视频在线播放| 亚洲精品一区二三区不卡| 精品一区精品二区| 另类少妇人与禽zozz0性伦| 欧美激情精品久久久久久大尺度| 亚洲人高潮女人毛茸茸| 国产成人精品综合久久久| 久久久女人电视剧免费播放下载| 2021久久精品国产99国产精品| 亚洲综合精品伊人久久| 欧美精品午夜视频| 在线看国产精品| 中文字幕精品www乱入免费视频| 日韩禁在线播放| 精品偷拍一区二区三区在线看| 日韩美女免费线视频| 青青草一区二区| 91黑丝在线观看| 欧美日韩亚洲网| 国产精品国语对白|