当对话框弹出时。当选择文件的类型变化时,如何使 对话框的文件名也发生改变。
比如对话框上文件名是123.text;
我选择了新的类型doc后,对话框上文件名变成123.doc

解决方案 »

  1.   

    楼主怎么跑到Delphi版了。响应SaveDialog的OnTypeChange事件,获取文件名框的内容,根据filter索引,改变文件名框的标题。
      

  2.   


    哈哈,妖哥好,Delphi的讨论VCL的比较多呀,我为了学BCB,delphi的代码虽然不会用,但是看的懂,哈哈。看到我在的回复http://topic.csdn.net/u/20110705/09/369cd0a6-3177-4066-9c41-55f9955c0581.html?seed=1563652994&r=74312825#r_74312825
    了吗?还有哦,你说的方法我试过啦,我就是不知道文件名框怎么访问。我写了个Win API函数试过了,貌似无效。
    代码:
    void ChangeFileName(HWND h, char* name)
    {
       HWND hc;
       char *buf;  h= GetWindow(h, GW_HWNDFIRST);
      while(h!=0)
      {
        if (GetParent(h)==Form1->Handle)
        {
          hc= GetWindow(h, GW_CHILD);
          while(hc!=0)
          {
            GetClassName(hc, buf, sizeof(buf));
            if (buf=="ComboBoxEx32")
            {
              EnableWindow(hc, False);
              SetWindowText(hc, name);
              return;
            }
            hc= GetWindow(hc, GW_HWNDNEXT);
          }
        }
        h= GetWindow(h, GW_HWNDNEXT);
     }
    }
      

  3.   


    您说写个dialog啊?问题倒不大,就是怕做出来的很丑,哈哈。
      

  4.   

    似乎不能直接改, 或者你可以在TYPECHANGE里, 把DIALOG关掉, 再改FILENAME,然后再EXECUTE