本帖最后由 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
|