按照以下步骤向现有项目添加代码,这些代码将允许您创建音频注释和按钮注释,通过菜单设置用户模式,并通过左键单击注释来激活注释。
从中创建的程序开始实现一个非自动化的注释程序.
向项目中添加菜单资源。
在顶部添加以下一行Color.rc在#include“Windows.h”之后。
# include“Color.h”
将以下代码添加到Color.rc
MENU_MAIN菜单开始弹出“用户模式”开始子菜单“设计”, idm_design,选中子菜单“运行”, IDM_RUN结束结束
打开Color.h,并在顶部添加以下行。
#定义IDM_DESIGN 200#定义IDM_RUN 300#定义menu main 400
在InitApplication中,更改行:
wcWindowClass。lpszMenuName = NULL;
来
wcWindowClass。lpszMenuName = TEXT(“MENU_MAIN”);
在InitInstance中,将CreateWindow中的菜单参数从NULL更改为:
LoadMenu(实例句柄,MAKEINTRESOURCE (MENU_MAIN))
在Window_OnCommand过程中,在switch语句中添加以下代码:
情况下IDM_RUN:/*设置用户模式为运行模式*/L_AnnSetUserMode (hContainer ANNUSER_RUN);CheckMenuItem(GetMenu(hWnd), IDM_DESIGN, MF_UNCHECKED);checkmenu (GetMenu(hWnd), IDM_RUN, MF_CHECKED);nAnnUserMode = ANNUSER_RUN;打破;情况下IDM_DESIGN:/*设置用户模式为设计模式*/L_AnnSetUserMode (hContainer ANNUSER_DESIGN);CheckMenuItem(GetMenu(hWnd), IDM_RUN, MF_UNCHECKED);GetMenu(hWnd), IDM_DESIGN, MF_CHECKED);nAnnUserMode = ANNUSER_DESIGN;打破;
声明以下全局变量:
HANNOBJECT MyAudio;/*音频注释对象*/HANNOBJECT色;/*按钮注释对象*/L_INT nAnnUserMode = ANNUSER_DESIGN;
并具有以下功能:
无效TestCreateAudioAnn (HWND HWND);无效TestCreateButtonAnn (HWND HWND);无效TestAnnHit (intxFromWindow,intyFromWindow, pHANNOBJECT);
添加如下代码:
无效TestCreateAudioAnn (HWND HWND){/*这段代码创建音频注释并将.wav文件与注释关联起来。* /HDC HDC;ANNRECT ContainerRect;ANNRECT MyAudioRect;矩形rAnnBounds;hdc = GetDC(hWnd);/*创建音频注释对象*/L_AnnCreate (ANNOBJECT_AUDIO &MyAudio);/*在TestCreateAnn中创建的容器中插入音频注释。* /L_AnnInsert(hContainer, MyAudio, FALSE);/*使注释可见。* /L_AnnSetVisible(MyAudio, TRUE, 0, NULL);/*获取容器矩形的尺寸。* /L_AnnGetRect(hContainer, &ContainerRect, NULL);/*设置音频注释的位置。* /MyAudioRect。left = ContainerRect。右* 5/8;MyAudioRect。top = ContainerRect。底部* 5/8;MyAudioRect。right = ContainerRect。右* 3/4;MyAudioRect。底部= ContainerRect。底部* 3/4;L_AnnSetRect (MyAudio &MyAudioRect);/*设置.wav文件的名称与该注释相关联。当您在运行模式下单击注释时,这个.wav文件将播放。更改路径和文件名以适合您的系统*/L_AnnSetText (MyAudio文本(“tada.wav”), 0);/*显示注释。* /L_AnnGetBoundingRect(MyAudio, &rAnnBounds, NULL);L_AnnDraw(hdc, &rAnnBounds, MyAudio);/*删除排队的paint消息。* /ValidateRect (hWnd, &rAnnBounds);返回;}
添加如下代码:
无效TestCreateButtonAnn (HWND HWND){/*这个函数创建一个按钮注释。* /HDC hWindowDC;/*当前窗口的设备上下文*/ANNRECT ContainerRect;/*根容器的矩形ANNRECT MyButtonRect;/*按钮对象矩形*/矩形rAnnBounds;/*用于绘制对象的边框*//*获取当前窗口的设备上下文hWindowDC = GetDC (hWnd);/*获取容器的矩形*/L_AnnGetRect(hContainer, &ContainerRect, NULL);/*创建按钮注释*/L_AnnCreateItem(hContainer, ANNOBJECT_BUTTON, TRUE, &MyButton);/*按钮大小和位置*/MyButtonRect。left = ContainerRect。右/ 8;MyButtonRect。top = ContainerRect。底部/ 2;MyButtonRect。right = ContainerRect。右/ 2;MyButtonRect。底部= ContainerRect。底部* 5/8;L_AnnSetRect(色、&MyButtonRect);/*设置按钮的文本*/L_AnnSetText(色、文本(“这是3号按钮”), 0);/*启用按钮*/L_AnnSetActiveState(色、ANNACTIVE_ENABLED);/*设置标签为3。您可以基于标记号*/进行操作L_AnnSetTag(MyButton, 3,0);/*显示按钮*/L_AnnGetBoundingRect(MyButton, &rAnnBounds, NULL);L_AnnDraw(hWindowDC, &rAnnBounds, MyButton);/*删除排队的油漆消息*/ValidateRect (hWnd, &rAnnBounds);返回;}
添加如下代码:
无效TestAnnHit (intxFromWindow,intyFromWindow, pHANNOBJECT{/*这个函数决定你点击了哪个注释对象。* /HANNOBJECT ThisObject;/*注释对象的局部变量*/点PointToTest;/*窗口客户端区域中要测试的点*/L_UINT TestResult;/*测试结果*//*使用传入坐标指定要测试的点*/PointToTest。x = xFromWindow;PointToTest。y = yFromWindow;/*获取指定点的对象*/(hContainer, &PointToTest, &TestResult, &ThisObject, NULL,运算符(ANNHITTESTINFO));更新调用者的对象变量*/如果(TestResult == ANNHIT_NONE)*phAnnObject = 0;其他的*phAnnObject = ThisObject;返回;}
将以下消息处理程序添加到MainWndProc:
HANDLE_MSG (hWnd, WM_LTANNEVENT, Window_AnnEvent);HANDLE_MSG (hWnd, WM_LBUTTONDOWN, Window_OnLButtonDown);
添加以下代码Window_OnLButtonDown:
无效win_onlbuttondown (HWND HWND, BOOL fDoubleClick,intxPos,intyPos, UINT keyFlags){UNREFERENCED_PARAMETER (keyFlags);UNREFERENCED_PARAMETER (fDoubleClick);如果(nAnnUserMode == ANNUSER_RUN){HANNOBJECT hCurrentObject = 0;L_UINT uCurrentObjectType = ANNOBJECT_LAST;TestAnnHit(xPos, yPos, &hCurrentObject);L_AnnGetType (hCurrentObject, &uCurrentObjectType);开关(uCurrentObjectType){情况下ANNOBJECT_AUDIO:SendMessage(hWnd, WM_LTANNEVENT, LTANNEVENT_ACTIVATE, ANNTOOL_AUDIO);打破;情况下ANNOBJECT_BUTTON:SendMessage(hWnd, WM_LTANNEVENT, LTANNEVENT_ACTIVATE, ANNTOOL_BUTTON);打破;}}}
添加以下代码Window_AnnEvent:
(HWND HWND, WPARAM WPARAM, LPARAM LPARAM){UNREFERENCED_PARAMETER (hWnd);开关(按钮){情况下LTANNEVENT_ACTIVATE:如果((intlParam == ANNTOOL_AUDIO)L_AnnSetActiveState (MyAudio ANNACTIVE_ENABLED);如果((intlParam == ANNTOOL_BUTTON){_wsystem(文本(“钙”));}打破;}返回0;}
注释掉TestCreateNoteAnn(hWnd)行Window_OnCreate并添加以下几行:
TestCreateAudioAnn (hWnd);
TestCreateButtonAnn (hWnd);
构建Color.exe。
Color.exe运行。点击音频和按钮注释。因为用户模式是设计模式,所以什么都不会发生。在User Mode菜单下,选择Run Mode,然后单击每个注释。保存此项目以测试注释代码示例。
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网络查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送给技术支持!应该有人联系!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格,开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至星期五
美国东部时间上午8:30 -下午6点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。
