如何在编辑框中显示/添加文件路径(或任何文本)?(C ++ Win32 API)

sg185

在我正在使用的一个程序中(仅使用Win32 API),我试图使用打开文件对话框来选择一个文件,该文件的路径随后将出现在程序的编辑框或列表框中。我的打开文件对话框正在工作(使用OpenFileName),但是我不确定如何在编辑框中显示所选文件的路径。

我尝试使用SendMessage函数来执行此操作,但未解决任何问题。

这是我用于打开文件对话框的代码(以及将路径发送到编辑框的位置):

   int OpenDialog(HWND hWnd)
    {
    OPENFILENAME ofn;
    TCHAR szFile[MAX_PATH];
    ZeroMemory(&ofn, sizeof(ofn));
    ofn.lStructSize = sizeof(ofn);
    ofn.lpstrFile = szFile;
    ofn.lpstrFile[0] = '\0';
    ofn.hwndOwner = hWnd;
    ofn.nMaxFile = sizeof(szFile);
    ofn.lpstrFilter = TEXT("txt Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0");
    ofn.nFilterIndex = 1;
    ofn.lpstrInitialDir = NULL;
    ofn.lpstrFileTitle = NULL;
    ofn.lpstrDefExt = "txt";
    ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

    if(GetOpenFileName(&ofn))
     {
       // the function to send the path name to the edit box would be here
     }
    }

这是我用于编辑框的代码:

    CreateWindow(TEXT("Edit"), TEXT(""), 
    WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE, 
    20, 20, 380, 20, hWnd, NULL, hInstance, NULL);

我该如何执行功能或技术?有什么办法可以对编辑框进行编码,以便可以吗?(示例代码将不胜感激:)

(我在Windows 8上使用CodeBlocks 13.12)

提前致谢。

豪塔姆·贾恩

首先,您需要将句柄按住到编辑框,以便以后可以重新使用它。您将需要从要在编辑框上调用SetWindowText的函数中访问该句柄。因此,HWND可以是该类的成员变量,也可以是全局变量。您设计的是什么。

HWND hEditBox = CreateWindow(TEXT("Edit"), TEXT(""), 
    WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE, 
    20, 20, 380, 20, hWnd, NULL, hInstance, NULL);

在GetOpenFileName之后调用SetWindowText。

 if(GetOpenFileName(&ofn))
 {
    SetWindowText(hEditBox, ofn.lpstrFile);
 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Win32 API:如何在编辑控件中更改部分文本的颜色

来自分类Dev

Win32 API:如何在编辑控件中更改部分文本的颜色

来自分类Dev

如何禁用按钮-Win32 API

来自分类Dev

C Win32 Api:完成编辑后,更新编辑框

来自分类Dev

C ++ Win32 Api资源文件

来自分类Dev

如何清除Win32 API中的屏幕

来自分类Dev

C ++如何使用Win32 API通过线程从文本框中获取文本

来自分类Dev

Windows:如何拦截Win32磁盘I / O API

来自分类Dev

如何为Win32 API声明变量?

来自分类Dev

Win32 API C ++菜单栏

来自分类Dev

使用C ++ Win32 API启用视觉样式吗?

来自分类Dev

C Win32 API:设置复选框的状态

来自分类Dev

无法在Win32 API中读取HWND的内存

来自分类Dev

在 Win32 API ListView 中添加带换行符的文本

来自分类Dev

如何使用WIN32 API for C ++更改文本的颜色和大小?

来自分类Dev

如何使用Win32 API从INI文件中删除部分?

来自分类Dev

Win32 API:如何在Edit控件中捕获转义键?

来自分类Dev

如何在Win32中正确调用HeapSummary API?

来自分类Dev

Win32 API:如何在Edit控件中捕获转义键?

来自分类Dev

是否显示“公共项目对话框”或“ GetOpenFileName”?(Win32 API)

来自分类Dev

是否显示“公共项目对话框”或“ GetOpenFileName”?(Win32 API)

来自分类Dev

如何使用Win32 API获取任何线程的堆栈大小和堆栈限制

来自分类Dev

如何使用Win32 API获取任何线程的堆栈大小和堆栈限制

来自分类Dev

使用自定义绘图在Win32 API中设置按钮文本颜色

来自分类Dev

是否有Win32 API在字符串中添加双引号?

来自分类Dev

Win32 API:如何读取序列,如果不是数据,如何在超时内退出

来自分类Dev

C ++,Win32错误

来自分类Dev

Golang:如何在没有cgo的情况下调用win32 API?

来自分类Dev

WIN32 API中WM_MOUSEHOVER上的POPUP窗口-如何关闭它?

Related 相关文章

  1. 1

    Win32 API:如何在编辑控件中更改部分文本的颜色

  2. 2

    Win32 API:如何在编辑控件中更改部分文本的颜色

  3. 3

    如何禁用按钮-Win32 API

  4. 4

    C Win32 Api:完成编辑后,更新编辑框

  5. 5

    C ++ Win32 Api资源文件

  6. 6

    如何清除Win32 API中的屏幕

  7. 7

    C ++如何使用Win32 API通过线程从文本框中获取文本

  8. 8

    Windows:如何拦截Win32磁盘I / O API

  9. 9

    如何为Win32 API声明变量?

  10. 10

    Win32 API C ++菜单栏

  11. 11

    使用C ++ Win32 API启用视觉样式吗?

  12. 12

    C Win32 API:设置复选框的状态

  13. 13

    无法在Win32 API中读取HWND的内存

  14. 14

    在 Win32 API ListView 中添加带换行符的文本

  15. 15

    如何使用WIN32 API for C ++更改文本的颜色和大小?

  16. 16

    如何使用Win32 API从INI文件中删除部分?

  17. 17

    Win32 API:如何在Edit控件中捕获转义键?

  18. 18

    如何在Win32中正确调用HeapSummary API?

  19. 19

    Win32 API:如何在Edit控件中捕获转义键?

  20. 20

    是否显示“公共项目对话框”或“ GetOpenFileName”?(Win32 API)

  21. 21

    是否显示“公共项目对话框”或“ GetOpenFileName”?(Win32 API)

  22. 22

    如何使用Win32 API获取任何线程的堆栈大小和堆栈限制

  23. 23

    如何使用Win32 API获取任何线程的堆栈大小和堆栈限制

  24. 24

    使用自定义绘图在Win32 API中设置按钮文本颜色

  25. 25

    是否有Win32 API在字符串中添加双引号?

  26. 26

    Win32 API:如何读取序列,如果不是数据,如何在超时内退出

  27. 27

    C ++,Win32错误

  28. 28

    Golang:如何在没有cgo的情况下调用win32 API?

  29. 29

    WIN32 API中WM_MOUSEHOVER上的POPUP窗口-如何关闭它?

热门标签

归档