ChinaNet

标题: Visual Fortran 高级编程技术4 [打印本页]

作者: Doublen    时间: 2015-4-8 10:43
标题: Visual Fortran 高级编程技术4
本帖最后由 Doublen 于 2015-4-8 10:48 编辑

2 Quick Win Application
2.1 画图

1) 例子程序3
SUBROUTINE PLOT_JU()
USEDFLIB
TYPE(XYCOORD) POS
OPEN(8,FILE='USER',TITLE='矩形')

I=SETBKCOLOR(3)
CALLCLEARSCREEN($GCLEARSCREEN)
I=SETCOLORRGB(#FFFFFF)
I=RECTANGLE($GFILLINTERIOR,100,100,300,300)
END
2) 注意点:

● 必需包含DFLIB库。

● 子窗口用 OPEN(窗口号,FILE='USER')打开。

● 用QuickWin编写的绘图程序不能被Win32 Application引用。


2.2 菜单

1) 编辑菜单

2) 菜单的应用

例子程序4
LOGICAL(4)FUNCTION INITIALSETTINGS()
USEDFLIB
LOGICAL(4)RESULT
EXTERNALPLOT_TYPE
RESULT=APPENDMENUQQ(1,$MENUENABLED,'画图(&P)'C,PLOT_TYPE)

INITIALSETTINGS=.TRUE.
ENDFUNCTION INITIALSETTINGS
2.3 对话框

1) 编辑对话框

2) 对话框的应用

例子程序5
SUBROUTINEPLOT_TYPE(L)
USEDIALOGM
IMPLICITNONE
INCLUDE'RESOURCE.FD'
LOGICALRET,L
TYPE(DIALOG)DLG
EXTERNALPLOT
RET=DLGINIT(IDD_PLOT_TYPE,DLG)
RET=DLGSET(DLG,IDC_PLOT_S1,'图形类型:')

RET=DLGSET(DLG,IDC_PLOT_L1,2,DLG_NUMITEMS)
RET=DLGSET(DLG,IDC_PLOT_L1,'矩形'C,1)

RET=DLGSET(DLG,IDC_PLOT_L1,'圆'C,2)

RET=DLGSETSUB(DLG,IDOK,PLOT)
RET=DLGMODAL(DLG)
CALLDLGUNINIT(DLG)
RETURN
ENDSUBROUTINE
SUBROUTINEPLOT(DLG,CONTROL_NAME,CALLBACKTYPE )

USEDFLOGM
INCLUDE'RESOURCE.FD'
TYPE(DIALOG) DLG
INTEGERCONTROL_NAME,CALLBACKTYPE,LOCAL_CALLBACKTYPE
INTEGERVALUE
LOGICALRET
LOCAL_CALLBACKTYPE= CALLBACKTYPE
RET=DLGGET(DLG,IDC_PLOT_L1,VALUE,1)
SELECTCASE (VALUE)
CASE(1)
CALLPLOT_JU()
CASE(2)
CALLPLOT_YUAN()
CASEDEFAULT
ENDSELECT
CALLDLGEXIT(DLG)
ENDSUBROUTINE  
3Win32 Application
3.1 概念
1) 窗口

是Windows应用程序基本的操作单元,是应用程序与用户之间交互的接口环境,也是系统
管理应用程序的基本单位。
2) 事件驱动

Windows程序设计围绕事件或消息的产生驱动运行处理函数。

3) 消息

Windows应用程序通过发送和接收统一格式的消息与其他应用程序和Windows系统进行信息

交换。
4) 对象与句柄

Windows系统通过句柄标识不同的对象和同类对象中不同的实例。

3.2 程序结构

1)WinMain函数

●WinMain函数是应用程序的入口函数,其功能是完成一系列的定义和初始 化工作,并

产生消息循环。
● 例子程序6


2) 窗口函数

● 定义了应用程序对接收到的不同消息的响应,是消息处理分支控制语句的 集合。

● 例子程序7

本帖转自52MC






欢迎光临 ChinaNet (http://www.nuclear.net.cn/) Powered by Discuz! X3.1