dlg.m_ofn.Flags |= OFN_NOCHANGEDIR;
时间: 2024-04-11 09:28:05 浏览: 201
在 MFC 中,dlg.m_ofn 是一个 CFileDialog 对象的成员变量,用于设置文件对话框的选项和标志。Flags 是其中一个标志位,用于设置特定的行为。
`OFN_NOCHANGEDIR` 是一个文件对话框标志,用于禁止在打开或保存文件时改变当前目录。通过将 `OFN_NOCHANGEDIR` 标志与 `Flags` 进行按位或操作,可以将这个标志添加到文件对话框的选项中。
下面是一个示例代码片段,展示了如何使用 `OFN_NOCHANGEDIR` 标志禁止文件对话框改变当前目录:
```cpp
CFileDialog dlg(TRUE, NULL, NULL, OFN_NOCHANGEDIR | OFN_FILEMUSTEXIST, NULL, this);
if (dlg.DoModal() == IDOK)
{
// 处理选择的文件
}
```
在上述代码中,通过按位或操作将 `OFN_NOCHANGEDIR` 标志添加到 `Flags` 中,从而禁止文件对话框改变当前目录。然后使用 `DoModal()` 函数显示文件对话框,并在用户选择文件后进行处理。
请注意,这只是 `OFN_NOCHANGEDIR` 标志的一个示例用法,你可以根据实际需求使用其他标志位或组合多个标志位来定制文件对话框的行为。
相关问题
dlg.m_ofn.lpstrFilter = _T("Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0");是什么意思
这段代码是在Windows的对话框程序中使用的,它定义了对话框中文件过滤器的内容。具体来说,它会在文件打开或保存对话框中显示可供选择的文件类型,用户只能选择过滤器中定义的文件类型进行操作。
在这段代码中,"Text Files(*.txt)\0*.txt\0"表示允许选择的文件类型为以“.txt”结尾的文本文件,而"All Files(*.*)\0*.*\0"则表示允许选择所有类型的文件。
如果你想自定义过滤器,只需按照类似的格式添加即可。其中,“\0”表示字符串结束符,因此需要将每个过滤器以及对应的扩展名用该符号分隔开来。
from pywinauto.application import Application from pywinauto.keyboard import send_keys app = Application('win32').connect(class_name_re='class TMainFrame') dlg = app.window(class_name_re='class TMainFrame') #dlg.minimize() #dlg['MouseOrder'].print_control_identifiers() """ dlg['合 约Edit2'].set_edit_text('SHFE AU 2312') dlg['合 约Edit2'].type_keys('{ENTER}') dlg['数 量Edit7'].set_edit_text('5') """ #print(dir(dlg.child_window(best_match='sell').wrapper_object())) #print(dlg['sell'].wrapper_object()) #print(dir(dlg['sell'].wrapper_object())) #print(dlg['sell'].texts()) #print(dlg['sell'].children()) #dlg['sell'].print_control_identifiers() xia_dan = dlg['sell'].rectangle() print(xia_dan)
这段代码中,`dlg['sell'].rectangle()`返回的是一个矩形区域的坐标,表示`sell`控件在窗口客户区域中的位置和大小。具体来说,返回值是一个4元组 `(L, T, R, B)`,其中 `L` 表示矩形左边界的横坐标,`T` 表示矩形上边界的纵坐标,`R` 表示矩形右边界的横坐标,`B` 表示矩形下边界的纵坐标。
你可以通过这个矩形的坐标信息来计算控件的中心坐标或者其他需要的坐标信息。比如,如果你想要获取`sell`控件的中心坐标,可以使用以下代码:
```
x1, y1, x2, y2 = dlg['sell'].rectangle()
center_x = (x1 + x2) // 2
center_y = (y1 + y2) // 2
print("sell控件中心坐标为:({},{})".format(center_x, center_y))
```
这里的 `//` 表示整除运算符,保证计算结果为整数。
阅读全文