gpt4 book ai didi

windows - 如何创建对话框以在 Fortran 中收集用户输入

转载 作者:可可西里 更新时间:2023-11-01 10:10:55 24 4
gpt4 key购买 nike

我正在尝试制作一个 Fortran 代码,显示一些适用于 Windows 环境的对话框。例如,我已经成功制作了一个简单的“确定/取消”对话框,如下所示。

PROGRAM test_dialog
!
implicit none
!
write(*,*) OKCancelDialog( "Continue?"//achar(0), "Test dialog"//achar(0) )
!
CONTAINS
!
FUNCTION OkCancelDialog( message, dlg_title ) RESULT( res )
!
use ifwin
!
implicit none
!
character( len = * ), intent( in ) :: message
character( len = * ), intent( in ) :: dlg_title
integer :: res
!
integer( SINT ) :: ret
!
ret = MessageBox( GetForegroundWindow(), message, dlg_title, MB_ICONQUESTION + MB_OKCANCEL )
!
res = 0
select case( ret )
case( IDOK )
res = 1
case( IDCANCEL )
res = 0
case default
res = 0
end select
!
END FUNCTION OkCancelDialog
!
END PROGRAM test_dialog

但是,我不知道如何通过从 Fortran 调用 Win32 API(或其他方式)来创建一个对话框来收集用户输入(例如,数字或文本),如下图所示。

enter image description here

有人对此有好主意吗?如果您分享一些智慧(例如示例代码),我们将不胜感激。

最佳答案

如果您指定正在使用的 Fortran 编译器,将会有所帮助,因为其中一些包括 Windows API 定义模块和其他有用的项目。英特尔 Visual Fortran 有模块和一堆示例,可以作为 Intel Parallel Studio XE for Windows Samples Bundle 的一部分下载。 - 查看它的 compiler_f 子文件夹。对于纯 API 调用,Win32\Angle 示例包含一个它从中读取的对话框文本框,因此您可以研究它。这应该可以很好地翻译(除了模块名称)到其他编译器。请记住,WinAPI 调用都是 STDCALL(在 32 位上),因此请确保您使用的任何接口(interface)都指定了这一点。

英特尔 Fortran 还提供了一个对 Fortran 更友好的对话框库,它可以处理您需要的很多内容。示例 Dialog\WHIZZY 说明了许多使用它的控件。

您的示例代码仅显示一个消息框,而不是一个对话框。对话框需要使用资源编辑器来定义对话框,然后编写代码来显示对话框窗口,等待输入,然后处理用户的选择。

关于windows - 如何创建对话框以在 Fortran 中收集用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55891040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com