一、NC 消息

Size: px
Start display at page:

Download "一、NC 消息"

Transcription

1 MiniGUI 特性说明书 本文档说明 MiniGUI 所支持的功能特性 一 概述 MiniGUI 是 Linux 控制台上运行的, 基于 SVGALib 和 LinuxThread 库的多窗口图形用户界面支持系统 MiniGUI 采用了类 Win32 的 API 接口, 实现了简化的类 Windows 98 风格的图形用户界面 图形用户界面在许多情况下都优于字符界面, 其最大的优点是使应用程序的操作简单易学 在 MiniGUI 中, 图形用户界面包括如下基本元素 : 主窗口 窗口非客户区 窗口标题 窗口边框 菜单栏 窗口客户区 子窗口 ( 窗片或控件 ) 对话框 对话框控件 图 1.1 图形用户界面的基本元素 1.1 窗口 MiniGUI 中的窗口基本分四类, 分别为主窗口 对话框 控件和主窗口中的窗片 MiniGUI 中的主窗口和 Windows 应用程序的主窗口概念类似, 但略微有些不同, MiniGUI 中的每个主窗口对应于一个单独的线程, 通过函数调用可建立主窗口以及对应的线程 每个线程有一个消息队列, 主窗口从这一消息队列中获取消息并由窗口过程 ( 回调函数 ) 进行处理 MiniGUI 中的对话框是一种特殊的窗口, 对话框一般和控件一起使用, 这两个概念和 Windows 的相关概念是类似的 MiniGUI 支持的控件类型有 : 静态框 : 文本 图标或矩形框等 这种控件的属性一般不会在运行时发生变化 文本框 : 单行或多行的文本编辑框 按钮 : 单选钮 复选框和一般按钮等 其他特殊控件 窗片是 MiniGUI 所特有的, 窗片实际是主窗口的子窗口, 只存在于主窗口中 为了

2 处理上的方便, 主窗口的子窗口只以平铺的形式出现, 因此我们将这种子窗口称为 窗片 或 窗格 窗片可以是私有的控件类型, 也可以是标准的控件类型 1.2 消息和消息循环 在 Windows 系列操作系统中, 广泛使用了消息驱动的概念 在 MiniGUI 中, 我们也 使用了消息驱动作为应用程序的创建构架 在消息驱动的应用程序中, 计算机外设发生的事件, 例如键盘键的敲击 鼠标键的按 击等, 都由支持系统收集, 将其以事先的约定格式翻译为特定的消息 应用程序一般包含 有自己的消息队列, 系统将消息发送到应用程序的消息队列中 应用程序可以建立一个循 环, 在这个循环中读取消息并处理消息, 一直处理到特定的消息传来为止 这样的循环称 为消息循环 一般地, 消息由代表消息的一个整型数和消息的附加参数组成 例如, 鼠标 左键的按下消息, 可能由 133 这个数来表示, 其附加参数可能包含按下时的鼠标所在位置 信息 例如,MiniGUI 中如下定义消息 : typedef struct { HWND hwnd; int message; WPARAM wparam; LPARAM lparam;... MSG; message 指定了特定的消息类型,wParam 是以 unsigned int 类型定义的消息的短参数, lparam 是以 long 类型定义的消息长参数 应用程序一般要提供一个处理消息的标准函数 在消息循环中, 系统可以调用此函数, 应用程序在此函数中处理相应消息 图 1.2 是一个消息驱动的应用程序的简单构架示意 外设事件 主窗口线程消息队列 消息 循环 窗口过程 窗口管理器 主窗口线程消息队列 主窗口线程消息队列 图 1.2 消息驱动的应用程序的简单构架 在 MiniGUI 中, 消息分为如下几种类型 : 系统消息, 为系统内部管理使用 鼠标消息, 鼠标的点击 移动等产生的消息 键盘消息, 键盘的按键消息 窗口消息, 窗口管理消息 菜单消息, 菜单管理消息

3 命令消息等 1.3 窗口过程和窗口类 窗口过程是用来处理窗口消息的函数过程 对于同一类型的控件, 其窗口过程一般是一样的 因此, 系统一般利用窗口的窗口类名来区分不同的窗口类并调用不同的窗口过程 由于几乎每一个主窗口均和其他窗口有着不同的窗口过程, 因此, 在 MiniGUI 中, 窗口类的概念只存在于控件和窗片中 对于主窗口来说, 其窗口过程在建立主窗口时指定, 而对控件和窗片来说, 则在注册窗口类时指定, 而在建立窗片或控件时指定所属窗口类 1.4 句柄 句柄是 MiniGUI 用来标识对象的标识符 句柄和指针概念类似, 但它不一定是指针值 利用句柄,MiniGUI 将系统变量从应用项目中分离了出来, 因为程序员只能通过句柄访问对象, 因而就没有利用指针是可能发生的因非法访问而导致的数据不一致问题 在 MiniGUI 中, 窗口 控件 设备环境 菜单 图标等均使用句柄访问 二 窗口 2.1 应用程序和主窗口 我们将基于 MiniGUI 的一个会话 (session) 称为一个应用项目, 而其中每个单独的 线程或线程组称为应用 每个应用项目可建立多个应用 主窗口是建立在 MiniGUI 基础 上的应用的主界面 MiniGUI 为每个主窗口建立单独的消息队列, 在该主窗口基础上派生 出的窗片 对话框及其控件均使用同一消息队列 在 MiniGUI 中, 每个应用对应于一个 线程 理论上讲, 每个应用可以具备多个主窗口, 但在 MiniGUI 中, 主窗口均以单独的 线程实现 但多个主窗口对应单一线程的情况也是可以在 MiniGUI 中实现的 每个应用项目有一个 MiniGUIMain 函数, 在这个函数中, 可建立初始的应用线程 在调用 MiniGUIMain 之前, MiniGUI 启动自己的桌面窗口 ( Desktop) 桌面窗口作为 MiniGUI 的窗口管理器而存在 下面的代码段在 MiniGUIMain 中启动了三个主窗口线程 : int MiniGUIMain(int args, char* arg[]) { pthread_t thread, thread2, thread3; CreateThreadForMainWindow(&thread, NULL, TestWindowMain, 0); CreateThreadForMainWindow(&thread2, NULL, TestWindowMain2, 0); CreateThreadForMainWindow(&thread3, NULL, TestWindowMain3, 0); return 0; CreateThreadForMainWindow 函数为主窗口建立线程, 并返回线程标识符 其中的第三个参数是线程的入口函数地址 如下的代码段定义了上述代码中第一个主 窗口线程的入口函数 :

4 void InitCreateInfo(PMAINWINCREATE pcreateinfo) { pcreateinfo->dwstyle = WS_THICKFRAME; pcreateinfo->spcaption = "The first main window" ; pcreateinfo->hmenu = 0; pcreateinfo->hcursor = GetSystemCursor(2); pcreateinfo->hicon = LoadIconFromFile("res/table.ico"); pcreateinfo->mainwindowproc = TestMainWinProc; pcreateinfo->lx = 50; pcreateinfo->ty = 50; pcreateinfo->rx = 300; pcreateinfo->by = 480; pcreateinfo->ibkcolor = COLOR_lightwhite; pcreateinfo->dwadddata1 = 0; pcreateinfo->dwadddata2 = 0; void* TestWindowMain(void* { MSG Msg; data) MAINWINCREATE CreateInfo; HWND hmainwnd; InitCreateInfo(&CreateInfo); if(!(hmainwnd = CreateMainWindow(&CreateInfo)) ) return NULL; ShowWindow(hMainWnd, SW_SHOWNORMAL); while( GetMessage(&Msg, hmainwnd) ) { DispatchMessage(&Msg); MainWindowThreadCleanup(hMainWnd); return NULL; 在上面的代码段中, 该线程首先调用 CreateMainWindow 建立了主窗口, 然后调用 ShowWindow 显示了主窗口, 最后启动了消息循环 当消息循环因为接收到 MSG_QUIT 消息而终止时, 该函数调用了 MainWindowThreadCleanup 清除了相关的线程数据 从上述代码中可看出主函数不支持窗口类, 在调用 CreateMainWindow 函数时直接指 定主窗口的窗口过程地址 我们也可以从中看到主窗口所支持的其他属性 : 1. 窗口风格 表 2.1 给出了所支持的窗口风格 表 2.1 MiniGUI 支持的主窗口风格 风格 WS_BORDER WS_THICKFRAME WS_THINFRAME WS_CAPTION WS_HSCROLL WS_MAXMIZEBOX WS_MINIMIZEBOX WS_SYSMENU WS_VSCROLL 描述创建一个具有单线边框的窗口创建一个具有宽边框的窗口创建一个具有细边框的窗口创建一个具有标题栏的窗口创建一个具有水平滚动条的窗口创建一个具有最大化框的窗口创建一个具有最小化框的窗口创建一个具有系统菜单的窗口创建一个具有垂直滚动条的窗口

5 WS_DISABLED WS_MAXIMIZE WS_MINIMIZE WS_VISIBLE WS_EX_TOPMOST 2. 窗口标题 3. 窗口菜单 4. 窗口图标 5. 窗口背景色 创建一个初始为禁止的窗口创建一个初始最大化的窗口创建一个初始最小化的窗口创建一个初始可见的窗口创建一个顶层窗口, 这是一个 Win32 的扩展风格 2.2 主窗口过程 主窗口过程实际是一个回调函数, 一般由 DispatchMessage 函数调用, 用来处理应 用的消息 主窗口过程一般如下定义 : int TestMainWinProc(HWND hwnd, int message, WPARAM wparam, LPARAM lparam) { HDC hdc; int x, y; RECT client; static BITMAP bitmap; static BOOL fvalid = FALSE; static int paintcount = 0; switch (message) { case MSG_CREATE: SetTimer (hwnd, 100, 20); if(loadbitmap(&bitmap, "res/mnls.bmp") < 0) fprintf (stderr, "Test Main Win: Loading bitmap failure!\n"); else fvalid = TRUE; case MSG_PAINT: hdc = BeginPaint (hwnd); testdc (hdc, fvalid?&bitmap:null); EndPaint (hwnd, hdc); case MSG_LBUTTONDBLCLK: hdc = GetClientDC (hwnd); TextOut(hdc, 0, 0, "Left button double clicked"); ReleaseDC (hdc); PostMessage (hwnd, MSG_CLOSE, 0, 0); return 0; case MSG_TIMER: if (ISINBACKGROUND) paintcount++; if (paintcount % 10!= 0) { hdc = GetClientDC (hwnd); GetClientRect (hwnd, &client); x = random() % (RECTW (client)); y = random() % (RECTH (client)); SetBrushColor(hdc, RGB2Index (hdc, random() % 256, random() % 256, random() % 256)); FillBox(hdc, x, y, random() % RECTW (client), random() % RECTH (client));

6 ReleaseDC (hdc); else InvalidateRect (hwnd, NULL, FALSE); case MSG_CLOSE: KillTimer (hwnd, 100); UnloadBitmap (&bitmap); DestroyMainWindow (hwnd); PostQuitMessage (hwnd); return 0; return DefaultMainWinProc(hWnd, message, wparam, lparam); 主窗口有四个入口参数, 分别是消息的目标窗口句柄 消息 消息的 WPARAM ( 即 unsigned int) 型参数和 LPARAM ( 即 long int) 型参数 在 32 位系统中, 消息的两个参数实际是等长度的 主窗口的窗口过程处理应用感兴趣的消息, 将其他消息传递给 DefaultMainWindProc 函数处理 2.3 桌面的应用项目接口 当用户在桌面上单击鼠标右键时可弹出浮动式菜单, 应用项目可通过桌面提供的接口在该菜单中添加菜单项, 从而提供一定的灵活性 要利用桌面的应用项目接口, 应用项目要实施两个函数 : void Customi ze D e sktopmenu (HMENU hmnu, int ipos); int CustomDesktopCommand (int id); 通过 CustomizeDesktopMenu 函数, 应用项目可在桌面的浮动式菜单中添加菜单及菜单项 当用户选择了定制的菜单项时,MiniGUI 将调用 CustomDesktopCommand 函数, 这时, 应用项目就可以处理该菜单命令 2.4 对话框和控件 对话框实际是一种特殊的主窗口 一般而言, 对话框中包含有许多系统提供的控件 对话框和控件的设计目标是提供和 Win32 在源代码级上的完全兼容 但某些复杂的控件 不打算支持, 对话框页也不支持 MiniGUI 支持的控件有 : 静态控件 按钮控件 编辑控件 列表控件 滚动条控件 组合框控件 同时,MiniGUI 将提供标准的公共对话框 : 文件打开对话框 文件保存对话框

7 2.6 消息框 MiniGUI 将提供和 Win32 完全兼容的消息框调用接口 2.6 窗片 窗片是主窗口中子窗口的简化支持, 为了避免子窗口之间的互相剪切, 而采用了平铺式的子窗口实现, 不考虑子窗口的互相剪切, 因而也就不提供多文档接口 也因为这个原因, 我们将这种子窗口称为窗片或窗格 窗片的建立和控件的建立方法一致 2.7 滚动支持 将提供和 Win32 完全兼容的主窗口或子窗口的滚动支持 三 对话框 窗片和控件 该部分功能尚未实现, 其目标是提供和 WIN32 的 80% 兼容 需要提供的接口分为如下几类 ( 注, 我们将窗片和控件统称为窗口, 并严格区分 主窗口 和 窗口 这两个名词 ): 窗口类的注册和注销 窗口的创建和销毁 对话框和控件管理 常见控件消息 操作接口等的实现 四 消息及消息队列 在 MiniGUI 中, 基本实现了 Win32 的消息处理函数 消息可通过如下函数发送 : 通过 PostMessage 发送 消息发送到消息队列后立即返回 这种发送方式称为 邮寄 消息 如果消息队列中的邮寄消息缓冲区满, 则该函数返回错误值 通过 PostSyncMessage 发送 该函数用来向不同于调用该函数的线程消息队列邮寄消息, 并且只有该消息被处理之后, 该函数才能返回, 因此这种消息称为 同步消息 通过 SendMessage 发送 该函数可以向任意一个窗口发送消息, 消息处理完成之后, 该函数返回 如果目标窗口所在线程和调用线程是同一个线程, 该函数直接调用窗口过程, 如果处于不同的线程, 则利用 PostSyncMessage 函数发送同步消息 通过 SendNotifyMessage 发送 该函数向指定的窗口发送通知消息, 将消息放入消息队列后立即返回 由于这种消息和邮寄消息不同, 是不允许丢失的, 因此, 系统以链表的形式处理这种消息 通过 SendAsyncMessage 发送 利用该函数发送的消息称为 异步消息, 系统直接调用目标窗口的窗口过程

8 五 图形设备接口 图形设备接口, 即 GDI, MiniGUI 中用来实现图形输出的模块 5.1 基本概念 图形设备在 MiniGUI 中, 采用了在 Windows 和 X Window 中普遍采用的图形设备概念 每个图形设备定义了计算机显示屏幕上的一个矩形输出区域 在调用图形输出函数时, 均要求指定经初始化, 或经建立的图形设备上下文, 或设备环境 (DC) 每个图形输出均局限在图形设备指定的矩形区域内 在多窗口系统中, 各个图形设备之间的输出互相剪切, 以避免图形输出之间互相影响 剪切域剪切域就是在图形设备上定义的一个区域, 所有在该图形设备上进行的图形输出, 超过剪切域的部分, 均被裁剪 只有在剪切域上的图形输出才是可见的输出 MiniGUI 中的剪切域, 定义为矩形剪切域的集合 映射模式映射模式指定了特定图形输出的坐标值如何映射到图形设备的坐标值 图形设备的坐标系原点定义为图形设备矩形区域的左上角 向右为正 X 坐标轴方向 ; 向下为正 Y 坐标轴方向 这一坐标系称为设备坐标系 通过 GDI 模块的映射模式操作函数, 可定义自己的逻辑坐标系 逻辑坐标系可以是设备坐标系的水平或垂直反转, 缩放, 或者偏移 多数 GDI 输出函数指定的是逻辑坐标系 默认情况下, 逻辑坐标系和设备坐标系是重合的 5.2 GDI 功能特性的分类说明 图形设备能力 通过调用函数 GetGDCapability, 可获得图形设备的如下能力 : 颜色数目 ; 水平和竖直方向的象素点数 ; 设备坐标系中可见点的最大 x 和 y 坐标值 创建 销毁或获取 释放图形设备接口 和 Win32 类似, MiniGUI 中也有一个 DC 的缓冲区, 应用可调用 GetDC 或 GetClientDC 函数从 DC 缓冲区中获取图形设备环境, 在结束使用 DC 之后, 应当调用 ReleaseDC 函数释放 DC 应用也可以建立自己私有的 DC, 这种 DC 可以是全局有效的 DC, 由于免除了获取 和释放以及初始化等工作, 因此, 利用这种 DC 可加速图形显示 当应用不再使用私有 DC

9 时, 应当利用 DeletePrivateDC 删除私有 DC 下面的代码即利用了这种 DC: int TestMainWinProc2(HWND hwnd, int message, WPARAM wparam, LPARAM lparam) { static HDC hdc; HDC hpaintdc; int x, y; RECT client; static int count = 0; static BITMAP bitmap; static BOOL fvalid = FALSE; static int paintcount = 0; switch (message) { case MSG_CREATE: SetTimer (hwnd, 100, 20); SetTimer (hwnd, 200, 5); if(loadbitmap(&bitmap, "res/j11b.bmp") < 0) fprintf (stderr, "Test Main Win: Loading bitmap failure!\n"); else fvalid = TRUE; case MSG_SHOWWINDOW: if (wparam == SW_SHOWNORMAL) hdc = CreatePrivateClientDC (hwnd); case MSG_PAINT: hpaintdc = BeginPaint (hwnd); testdc (hpaintdc, fvalid?&bitmap:null); EndPaint (hwnd, hpaintdc); case MSG_LBUTTONDBLCLK: return 0; case MSG_TIMER: if (ISINBACKGROUND) if (wparam == 100) { paintcount ++; if (paintcount % 10!= 0) { GetClientRect (hwnd, &client); x = random() % (RECTW (client)); y = random() % (RECTH (client)); SetPenColor(hdc, RGB2Index (hdc, random() % 256, random() % 256, random() % 256)); LineTo(hdc, x, y); else InvalidateRect else if (wparam == 200) { if (count < 5) { Ping (); count ++; else KillTimer (hwnd, 200); (hwnd, NULL, TRUE);

10 case MSG_CLOSE: KillTimer (hwnd, 100); KillTimer (hwnd, 200); UnloadBitmap (&bitmap); DeletePrivateDC (hdc); DestroyMainWindow (hwnd); PostQuitMessage (hwnd); return 0; return DefaultMainWinProc(hWnd, message, wparam, lparam); 上述代码在应用主窗口建立时创建了私有 DC, 然后在定时器消息中利用私有 DC 进行绘制, 最后在关闭窗口时删除了私有 DC MiniGUI 也支持内存中的虚拟 DC, 可通过 CreateCompatibleDC 建立内存 DC, 利用这种 DC, 可加速绘制过程, 并减少绘制过程中闪烁现象 应用可使用 DeleteCompatibleDC 函数删除内存 DC 上述 DC 的创建或获取与 Win32 API 有较明显的不同 一般绘制属性这类功能用来设置 DC 的绘制属性, 这些属性及其影响的绘图操作在表 5.1 中列出 表 5.1 一般绘图属性 绘制属性所影响的绘图操作备注 背景色 文本输出 GetBkColor, SetBkColor 背景模式 文本输出 GetBkMode, SetBkMode 文本颜色 文本输出 GetTextColor, SetTextColor 画笔类型 线条输出 只支持实型画笔 GetPenType, SetPenType 画笔颜色 线条输出 GetPenColor, SetPenColor 画刷类型 填充操作 只支持实型画刷 GetBrushType, SetBrushType 画刷颜色 填充操作 GetBrushColor, SetBrushColor 一般绘图支持 这类功能用来完成基本的绘图功能, 这些功能包括 : 画点 直线 圆 矩形等 另外 还有一些颜色转换方面的功能, 可以将特定的 RGB 转换为最接近的 256 色调色板中的 颜色索引值 接口函数由表 5.2 给出 表 5.2 一般绘图支持 函数 SetPixel SetPixelRGB GetPixel GetPixelRGB RGB2Index MoveTo, LineTo 功能说明设置指定的象素颜色, 颜色值以调色板索引给出 设置指定的象素颜色, 颜色值以 RGB 值给出 获取指定点的象素颜色, 以调色板索引给出 获取指定点的象素颜色, 以 RGB 值给出 完成 RGB 值到调色板索引值的转换 绘制直线

11 Circle Rectangle 绘制圆 绘制矩形 文本输出支持这类功能用来利用系统字体输出文本 可实现无格式文本 ( TextOut) 和有格式文本 (TabbedTextOut) 的输出 作为辅助函数, 应用还可以利用 GetTabbedTextExtent 函数来获得格式化文本字符串的输出尺寸 由于系统字体是等宽字体, 无格式文本的输出长度就等于单字节字符串个数乘以单个字符的宽度 利用 GetCharWidth 以及 GetCCharWidth 可获取单字节字符以及双字节字符 ( 汉字 ) 的宽度 ; 利用 GetCharHeight 可获取字符的高度 映射函数支持 MiniGUI 支持的映射方式有两种, 一种和 Win32 的 MM_TEXT 映射方式一样, 即设备坐标系和逻辑坐标系是一致的 ; 一种和 Win32 的 MM_ANISOTROPIC 映射方式一样, 逻辑 x 和 y 轴可以以任意的比例映射到对应的坐标轴上 其他的 Win32 映射方式不被支持 通过函数 SetMapMode 设定映射方式 利用 SetWindowExt 和 SetViewportExt 可设置 MM_ANISOTROPIC 映射方式的坐标轴方向 比例等 利用 SetWindowOrg 和 SetViewPortOrg 可以设定原点位置 和上述函数的对应的 Get 函数组可用来获取设定值 坐标转换这类函数用来实现设备坐标到逻辑坐标的转换 DPtoLP 将设备坐标转换为逻辑坐标, LPtoDP 将逻辑坐标转换为设备坐标 剪切支持这类函数用来实现对 DC 剪切域的操作 和 Win32 不同的是,MiniGUI 的剪切域只支持矩形剪切域 ExcludeClipRect 可用来在当前剪切域中排除指定的矩形区域 IncludeClipRect 可用来在当前剪切域中包含指定的矩形区域 CliprectIntersect 可用来将当前剪切域和指定矩形相交 SelectClipRect 将剪切域设置为指定矩形 GetBoundsRect 获取包含当前剪切域的最大矩形 PtVisible 可判断给定点是否处于剪切域 RectVisible 可判断给定矩形是否和剪切域相交 位图支持这类函数用来实现填充操作 利用 FillBox 可以以当前的画刷类型和颜色填充指定矩形 利用 FillBoxWithBitmap 可以用指定的位图填充指定矩形, 如果有需要, 该函数可进行位图的缩放 利用 BitBlt 函数可在两个 DC 之间复制图象

12 利用 StretchBlt 函数可两个 DC 之间复制图象, 并完成缩放 利用函数 LoadBitmap 可从 Windows BMP 文件中装入位图信息 UnloadBitmap 则卸载位图信息 图标支持 MiniGUI 的图标支持和 Win32 API 大致相同, 包含如下几种操作 : 创建和销毁图标 :LoadIconFromFile CreateIcon DestroyIcon 图标绘制支持 :DrawIcon 根据需要 MiniGUI 将提供系统图标集, 及相应的操作函数 矩形支持这类函数提供了实现矩形相交, 合并等一般性的操作, 达到 Win32 的 95% 兼容 下面是这些函数的说明 1) SetRect void GUIAPI SetRect(RECT* prc, int left, int top, int right, int bottom); 该函数将矩形 prc 设定为参数 left, top, right, bottom 指定的大小 2) SetRectEmpty void GUIAPI SetRectEmpty(RECT* prc); 该函数将矩形 prc 设置为空矩形. 空矩形就是面积为 0 的矩形. 该函数将矩形的 left, top, right, bottom 值均设置为 0 3) CopyRect void GUIAPI CopyRect(RECT* pdrc, const RECT* psrc); 该函数将矩形 psrc 复制到 pdrc 中 4) IsRectEmpty BOOL GUIAPI IsRectEmpty(const RECT* PRC); 该函数判断指定矩形是否为空矩形 若为空矩形, 则函数返回 TRUE, 否则返回 FALSE 5) EqualRect BOOL GUIAPI EqualRect(const RECT* prc1, const RECT* prc2); 该函数判断指定的两个矩形是否是相等的矩形 相等的矩形其 bottom 值均相等 left, top, right, 6) NormalizeRect void GUIAPI Normali ze R e ct(rect* prect); 该函数将指定的矩形 prect 进行正规化处理 矩形的正规化指满足如下条件的矩形 :

13 left <= right 并且 top <= bottom 7) IntersectRect BOOL GUIAPI IntersectRect(RECT* pdrc, const RECT* psrc1, const RECT* psrc2); 该函数求两个矩形 psrc1 和 psrc2 的相交区域, 并在 pdrc 中返回相交矩形 如果 psrc1 和 psrc2 相交, 函数返回为 TRUE 如果 psrc1 和 psrc2 不相交, 函数返回为 FALSE,pdrc 为空矩形 8) DoesIntersect BOOL GUIAPI DoesIntersect(const RECT* psrc1, const RECT* psrc2); 该函数判断两个矩形是否相交 如果 psrc1 和 psrc2 相交, 函数返回为 TRUE 如果 psrc1 和 psrc2 不相交, 函数返回为 FALSE 9) UnionRect BOOL GUIAPI UnionRect(RECT* pdrc, const RECT* psrc1, const RECT* psrc2); 该函数求两个矩形 psrc1 和 psrc2 相并矩形, 并在 pdrc 中返回相并矩形 如果 psrc1 和 psrc2 能够进行相并操作, 函数返回 TRUE 如果 psrc1 和 psrc2 不能进行相并操作, 函数返回 FALSE,pdrc 为空矩形 10) SubtractRect BOOL GUIAPI SubtractREct(RECT* pdrc, const RECT* psrc1, const RECT* psrc2); 该函数求两个矩形 psrc1 和 psrc2 相减的矩形, 并在 pdrc 中返回结果矩形 如果 psrc1 和 psrc2 能够进行相减操作, 函数返回 TRUE 如果 psrc1 和 psrc2 不能进行相减操作, 函数返回 FALSE,pdrc 为空矩形 11) OffsetRect void GUIAPI OffsetRect(RECT* prc, int x, int y); 该函数将矩形 prc 偏移指定的偏移量 x, y 12) InflateRect void GUIAPI InflateRect(RECT* prc, int cx, int cy); 该函数将矩形 prc 的长和宽分别增加 cx 和 cy 13) PtInRect BOOL GUIAPI PtInRect(const RECT* prc, int x, int y); 该函数判断指定点 (x, y) 是否处于矩形 prc 中 如果指定点在矩形中, 函数返回 TRUE; 否则返回 FALSE

14 六 菜单 MiniGUI 中的菜单接口和 Win32 90% 兼容, 但有少许差别 在外观上,MiniGUI 可 为弹出式菜单定义一个菜单标题, 可支持空的弹出式菜单 ; 在内部结构和概念上也有一些 小的差别 主要区别在于子菜单的定义上, 子菜单即可以是一个完整的弹出式菜单, 也可 以是一个没有弹出式菜单标题的子菜单 从另一个角度讲, 弹出式菜单是由标题以及一系 列子菜单项组成的 MiniGUI 提供用来操作菜单的函数有 : HMENU GUIAPI CreateMenu (); HMENU GUIAPI CreatePopupMenu ( PMENUITEMINFO pmii); HMENU GUIAPI CreateSystemMenu (); int GUIAPI InsertMenuItem (HMENU hmnu, int item, BOOL flag, PMENUITEMINFO pmii); int GUIAPI RemoveMenu (HMENU hmnu, int item, UINT flags); int GUIAPI DeleteMenu (HMENU hmnu, int item, UINT flags); int GUIAPI DestroyMenu (HMENU hmnu); 功能 上述这些函数用来操作菜单数据, 可实现菜单的创建 销毁, 菜单项的添加 删除等 int GUIAPI IsMenu (HMENU hmnu); 该函数可用来判断给定句柄是否为菜单句柄 HMENU GUIAPI SetMenu (HWND hwnd, HMENU hmnu); HMENU GUIAPI GetMenu (HWND hwnd); 上述函数用于获取或设置主窗口的菜单 void GUIAPI DrawMenuBar (HWND hwnd); int GUIAPI TrackMenuBar (HWND hwnd, int pos); int GUIAPI TrackPopupMenu (HMENU hmnu, UINT uflags, int x, int y, HWND hwnd; HMENU GUIAPI GetMenuBarItemRect (HWND hwnd, int pos, RECT* prc); BOOL GUIAPI HiliteMenuBarItem (HWND hwnd, int pos, UINT flag); 上述函数用于显示并跟踪菜单 int GUIAPI GetMenuItemCount (HMENU hmnu); int GUIAPI GetMenuItemID (HMENU hmnu, int pos); int GUIAPI GetMenuItemInfo (HMENU hmnu, int item, BOOL flag, PMENUITEMINFO pmii); int GUIAPI GetMenuItemRect (HWND hwnd, HMENU hmnu, int item, PRECT prc); HMENU GUIAPI GetPopupSubMenu (HMENU hpppmnu); HMENU GUIAPI GetSubMenu (HMENU hmnu, int pos); int GUIAPI GetSystemMenu (HWND hwnd, BOOL flag); UINT GUIAPI EnableMenuItem (HMENU hmnu, int item, UINT flags); int GUIAPI CheckMenuRadioItem (HMENU hmnu, int first, int last, int checkitem, UINT flags); int GUIAPI SetMenuItemBitmaps (HMENU hmnu, int item, UINT flags, PBITMAP hbmpunchecked, PBITMAP hbmpchecked); int GUIAPI SetMenuItemInfo (HMENU hmnu, int item, BOOL flag, PMENUITEMINFO pmii); 上述这些函数用于获取或设置菜单属性

15 七 定时器 在 MiniGUI 中应用项目可用的定时器总共可有 16 个, 而每个应用最多只能定义 8 个定时器 MiniGUI 中的定时器和 Win32 中使用定时器的方法是一样的, 但不支持定时器回调 函数 MiniGUI 提供来操作定时器的函数有 : BOOL GUIAPI SetTimer (HWND hwnd, int id, int speed); BOOL GUIAPI KillTimer (HWND hwnd, int id); BOOL GUIAPI SetTimerSpeed (HWND hwnd, int id, int speed); 如下的代码段建立了标识号为 100 的定时器 : SetTimer (hwnd, 100, 20); 然后在适当的时候删除了定时器 : KillTimer (hwnd, 100); 注意, 在 Win32 中, 创建定时器时指定定时器的时间间隔, 而在 MiniGUI 中指定的 是速度 八 鼠标光标 MiniGUI 提供了和 Win32 基本兼容的鼠标光标操作, 其中有光标的创建和销毁, 系统光标支持, 光标剪切, 光标位置以及光标的显示和隐藏等 下面的函数可用来创建 销毁鼠标光标, 或获取系统鼠标光标 : HCURSOR GUIAPI LoadCursorFromFile(const char* filename); HCURSOR GUIAPI CreateCursor(int xhotspot, int yhotspot, int w, int h, const BYTE* pandbits, const BYTE* pxorbits, int colornum); BOOL GUIAPI DestroyCursor(HCURSOR hcsr); HCURSOR GUIAPI GetSystemCursor(int csrid); 函数 GetCurrentCursor 则可以返回当前的鼠标光标 : HCURSOR GUIAPI GetCurrentCursor(void); 下面的函数剪切鼠标光标的活动范围 : void GUIAPI ClipCursor(const RECT* prc); void GUIAPI GetClipCursor(RECT* prc); 下面的函数同步获取或设置鼠标光标的位置, 需要给定屏幕坐标 : void GUIAPI GetCursorPos(POINT* ppt); void GUIAPI SetCursorPos(int x, int y); SetCursor 函数可用来设置鼠标光标形状 : HCURSOR GUIAPI SetCursor(HCURSOR hcsr); ShowCursor 可隐藏或显示鼠标光标 : int GUIAPI ShowCursor(BOOL fshow);

16 九 插入符 MiniGUI 将完全实现 Win32 对插入符的管理功能 包括如下函数 : CreateCaret DestroyCaret 上述函数用来创建和销毁插入符 GetCaretBlinkTime GetCaretPos HideCaret SetCaretBlinkTime SetCaretPos ShowCaret 上述函数用来显示 隐藏或操作插入符属性 十 键盘和鼠标输入 这部分内容应保持和 Win32 的 80% 兼容, 在现有基础上还需要完成如下工作 : 鼠标输入信息中键盘的标志信息, 即 Ctrl Alt Shift 等键的信息 键盘从原始键码到 ASCII 或 GB2312 码的翻译 十一 键盘快捷键 这部分内容将保持和 Win32 的 90% 兼容, 包含如下函数 : CopyAcceleratorTable CreateAcceleratorTable DestroyAcceleratorTable LoadAccelerators * AddAccelerator * RemoveAccelerator * 上述函数用来操作快捷键数据结构 因为没有资源文件, 因此,LoadAccelerators 是 实现从指定文件中装载快捷键的函数,AddAccelerator 和 RemoveAccelerator 函数用来 向已有的快捷键中添加或删除快捷键 TranslateAccelerator 该函数将快捷键翻译为对应的菜单命令

PowerPoint 演示文稿

PowerPoint 演示文稿 嵌入式系统 嵌入式 GUI 浙江大学计算机学院陈文智 chenwz@zju.edu.cn 提纲 嵌入式 GUI 概述 MiniGUI 概述 MiniGUI 架构 MiniGUI 使用 MiniGUI 编程 1 嵌入式 GUI 概述 GUI 的出现是 PC 应用的一个分水岭 嵌入式平台上的 GUI 具备轻小型 占用资源少 高性能 高可靠性和可配置性等嵌入式平台所特有的优点 一般针对特定的硬件设备或环境,

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464>

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464> 第 1 章 进入 Photoshop 的全新世界 本章导读 Photoshop 1 1.1 Photoshop CS6 Photoshop Photoshop 1.1.1 Photoshop POP 1-1 图 1-1 平面广告效果 1.1.2 Photoshop 1-2 Photoshop CS6 Photoshop CS6 Photoshop CS6 Extended 3D 3 Photoshop

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

手册 doc

手册 doc 1. 2. 3. 3.1 3.2 3.3 SD 3.4 3.5 SD 3.6 3.7 4. 4.1 4.2 4.3 SD 4.4 5. 5.1 5.2 5.3 SD 6. 1. 1~3 ( ) 320x240~704x288 66 (2G SD 320x2401FPS ) 32M~2G SD SD SD SD 24V DC 3W( ) -10~70 10~90% 154x44x144mm 2. DVR106

More information

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

新・明解C言語入門編『索引』

新・明解C言語入門編『索引』 !... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177

More information

mfc.doc

mfc.doc SDK 编程讲座 ( 一 ) 摘自 SDK 路报 no.1 ( 电子版 ) Wndows 编程两种方式 : 1.SDK 编程 : 用 C 语言直接调用 Windows API 函数. 这类 API 函数有上千个 ; 2.MFC 编程 : 用类将上述 API 封装起来, 用 C++ 来调用. 一般只需 20 多个 windows 类和另外 20 多个通用的非 windows 类就可 " 干活 " 了.

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

ebook50-11

ebook50-11 11 Wi n d o w s C A D 53 M F C 54 55 56 57 58 M F C 11.1 53 11-1 11-1 MFC M F C C D C Wi n d o w s Wi n d o w s 4 11 199 1. 1) W M _ PA I N T p W n d C W n d C D C * p D C = p W n d GetDC( ); 2) p W n

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

untitled

untitled 3 C++ 3.1 3.2 3.3 3.4 new delete 3.5 this 3.6 3.7 3.1 3.1 class struct union struct union C class C++ C++ 3.1 3.1 #include struct STRING { typedef char *CHARPTR; // CHARPTR s; // int strlen(

More information

<4D F736F F D E4345C6BDCCA84323B1E0B3CCD2AAB5E3D6AED2BB2E646F63>

<4D F736F F D E4345C6BDCCA84323B1E0B3CCD2AAB5E3D6AED2BB2E646F63> 基于 WINCE 平台 C# 编程要点之一 本文主要介绍在基于 Windows CE 平台的英创嵌入式主板下进行 C#(Microsoft Visual Stdio.Net 2005) 应用程序开发时会常常用到的一些功能函数以及开发方法, 这些方法适用于英创采用 WinCE 平台的所有型号嵌入式主板, 包括 EM9000 EM9260 EM9160 等 本文要点包括 : 文件的删除和复制 如何获取存取设备的空间大小

More information

MGEffV1dot0ProgrammingGuide < Main < TWiki Page 2 of 版本日期

MGEffV1dot0ProgrammingGuide < Main < TWiki   Page 2 of 版本日期 MGEffV1dot0ProgrammingGuide < Main < TWiki Page 1 of 2 mgeff 编程指南 目录修订记录版本变更记录 目录 前言 版权声明 关于本指南 第一部分 mgeff 简介 第一章动画原理 第二章 mgeff 架构与特性 第二部分 mgeff 使用基础 第三章开始启程 第四章创建和运行动画 第五章动画的参数 第六章动力曲线 第七章动画的属性 第八章动画上下文信息

More information

技 术 文 件

技  术  文  件 技术文件 技术文件名称 :IAlert 接口使用说明 技术文件编号 : 版 本 :V1.0 共页 ( 包括封面 ) 拟制 审核 会签 标准化 批准 中兴通讯股份有限公司 XX 软件模块详细设计说明 版本号 修改记录 文件编号 版本号 拟制人 / 修改人 拟制 / 修改日期 1 V1.0 胡曦 2005-08-12 新建 更改理由 主要更改内容 ( 写要点即可 ) 注 1: 每次更改归档文件 ( 指归档到事业部或公司档案室的文件

More information

1. 注册自己的控件类 我把控件类名称定义为 "HyperLinkCtrl", 还要为窗口额外分配空间, 这样才能迚行更多的控制 // 注册控件类 ATOM WINAPI RegisterHyperLinkCtrl(HINSTANCE hins) WNDCLASSEX wndclass; ZeroM

1. 注册自己的控件类 我把控件类名称定义为 HyperLinkCtrl, 还要为窗口额外分配空间, 这样才能迚行更多的控制 // 注册控件类 ATOM WINAPI RegisterHyperLinkCtrl(HINSTANCE hins) WNDCLASSEX wndclass; ZeroM Win32 编程迚阶 : 打造自己的标准控件作者 :cntrump 前言 Windows 给我们提供了很多的标准控件, 基本上够用的 但是有时候我们会对标准控件丌满意, 这时候就可以考虑自己编写控件 本教程的目的是编写一个出一个简单的标准控件, 作用类似于网页上的超链接, 除了可以接受 Windows 常规消息还可以处理控件自定义的消息 程序运行的效果如下 : 鼠标点击之后就会打开在程序中所指定的链接

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

<4D F736F F D20BBF9D3DA F344C696E7578B5C C9E3CFF1CDB7CDBCCFF1B2C9BCAFCAB5CFD62E646F63>

<4D F736F F D20BBF9D3DA F344C696E7578B5C C9E3CFF1CDB7CDBCCFF1B2C9BCAFCAB5CFD62E646F63> 基于 Video4Linux 的 USB 摄像头图像采集实现 Write by daily3( 戴小鼠 ) 著作权 : 戴丽 ( 合肥工业大学 ) (email:daily3@126.com) 做了一段时间的摄像头图像采集, 有了一些心得 在论坛上开的 2410 摄像头问题专贴 (http://www.hhcn.com/cgi-bin/topic.cgi?forum=1&topic=247&show=0)

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

哈尔滨应用职业技术学院2012年教育教学质量报告

哈尔滨应用职业技术学院2012年教育教学质量报告 哈 尔 滨 应 用 职 业 技 术 学 院 高 等 职 业 教 育 质 量 年 度 报 告 (2015) 哈 尔 滨 应 用 职 业 技 术 学 院 2015 年 1 月 目 录 一 学 院 简 介... 1 二 办 学 条 件... 1 1. 办 学 资 源... 1 2. 办 学 经 费... 2 3. 师 资 队 伍... 3 三 学 院 教 学... 3 1. 专 业 建 设... 3 2.

More information

Photoshop CS6 艺术设计案例教程 ( 第二版 ) 1.1 Photoshop 的应用领域 Photoshop,,, Photoshop Photoshop 的用途 Photoshop CIS ( ) ( ) 案例展现 ~ 1

Photoshop CS6 艺术设计案例教程 ( 第二版 ) 1.1 Photoshop 的应用领域 Photoshop,,, Photoshop Photoshop 的用途 Photoshop CIS ( ) ( ) 案例展现 ~ 1 Chapter 01 Photoshop CS6 的基本操作 本章内容 1.1 Photoshop 的应用领域 1.6 控制面板的显示与隐藏 1.2 位图和矢量图的特性 1.7 新建 打开与保存文件 1.3 像素和分辨率的关系 1.8 图像的缩放 1.4 色彩模式 1.9 屏幕显示模式 1.5 Photoshop CS6 界面 1.10 计算机图形图像常用的色彩模式 Photoshop CS6 艺术设计案例教程

More information

Microsoft PowerPoint - gp3.ppt

Microsoft PowerPoint - gp3.ppt Windows 視窗程式設計 (2) 靜宜大學資訊管理學系蔡奇偉副教授 大綱 視窗的結構 Painting and Repainting GDI Device Context 視窗版的 Hello, world! 程式 取得裝置的功能資訊 版權所有 : 靜宜大學資訊管理學系蔡奇偉副教授 1 視窗的結構 標題列 (title) 工具列 (tools) 功能表 (menu) 工作區 (client) 狀態列

More information

<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF>

<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF> 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 考 试 2009 年 上 半 年 软 件 设 计 师 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 请 按 下 述 要 求 正 确 填 写 答 题 纸 1. 在 答 题 纸 的 指 定 位 置 填 写 你 所 在 的 省 自 治 区 直 辖 市 计 划 单 列 市 的 名 称 2. 在 答

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

Microsoft Word - 消息机制.doc

Microsoft Word - 消息机制.doc 消息机制 一 消息管理器设计 采用的队列是顺序表示 ( 即数组表示 ) 的循环队列, 循环队列的好处是可以充分的利用 队列的空间 消息包含了一定的信息, 为了实现消息结构的尽可能的通用性, 设计了如下的 消息结构 : typedef struct union const void* p; // 消息中附带的数据 int v; data; mygui_handle hobjdst; // 接收消息的目标对象

More information

LEFT, RIGHT // 左 // 右 (2) 当图片移动后, 按钮的坐标发生改变, 此操作通过 setloca tion() 方法实现 setlocation() 方法是从 Component 类继承的, 其定义如下 : public void setlocation(int x, int y

LEFT, RIGHT // 左 // 右 (2) 当图片移动后, 按钮的坐标发生改变, 此操作通过 setloca tion() 方法实现 setlocation() 方法是从 Component 类继承的, 其定义如下 : public void setlocation(int x, int y 拼图游戏 任务说明 本实例实现了拼图游戏的开发 运行程序, 单击 开始 按钮将打乱图片的位置, 效果如图 1 所示, 然后通过鼠标单击图片进行移动, 直到将所有图片都移动到正确位置, 游戏过关, 过关后的效果如图 2 所示 图 1 打乱图片位置的效果图 2 图片移动到正确位置的效果 关键技术 本程序主要通过 Swing 与枚举类实现, 程序将一幅完整的图片平均分成 9 部分, 每一部分为一个正方形,

More information

C/C++语言 - C/C++数据

C/C++语言 - C/C++数据 C/C++ C/C++ Table of contents 1. 2. 3. 4. char 5. 1 C = 5 (F 32). 9 F C 2 1 // fal2cel. c: Convert Fah temperature to Cel temperature 2 # include < stdio.h> 3 int main ( void ) 4 { 5 float fah, cel ;

More information

第1章 µC/GUI的介绍

第1章 µC/GUI的介绍 控件可以创建和独立使用, 因为它们自己天生就是窗口 可是, 使用对话框常常是很需 要的, 它是一种包含一个或多个控件的窗口 一个对话框通常是一个窗口, 它的出现要求使用者输入信息 它可能包括多个控件, 通 过对这些不同的控件的选择向使用者发出请求信息, 或者它采用一个提供简单信息 ( 例如提醒使消息框用者注意或警告 ) 和一个 OK 按钮的形式 第 1 页 14.1 对话框基础 1. 输入焦点 视察管理器能记住一个窗口或窗口物体最终被选择是通过用户使用触摸屏,

More information

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2 PowerBuilder 9 PowerBuilder Native Interface(PBNI) PowerBuilder 9 PowerBuilder C++ Java PowerBuilder 9 PBNI PowerBuilder Java C++ PowerBuilder NVO / PowerBuilder C/C++ PowerBuilder 9.0 PowerBuilder Native

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

Microsoft Word - 新1-12.doc

Microsoft Word - 新1-12.doc 实训 5 面向对象编程练习 实训 5 面向对象编程练习 5.1 实训目的 通过编程和上机实验理解 Java 语言是如何体现面向对象编程基本思想 以及如何创建类 和对象 了解成员变量和成员方法的特性 5.2 实训要求 编写一个体现面向对象思想的程序 编写一个创建对象和使用对象的方法的程序 5.3 实训内容 5.3.1 创建对象并使用对象 1 定义一个 Person 类 可以在应用程序中使用该类 成员属性

More information

F515_CS_Book.book

F515_CS_Book.book /USB , ( ) / L R 1 > > > 2, / 3 L 1 > > > 2 + - 3, 4 L 1 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 ( ) GSM 手机已连接到 GSM 网络 指示条越多, 接收质量越好 2 ...........................4.............................. 4 Micro SD (

More information

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式] Arrays and Strings 存储同类型的多个元素 Store multi elements of the same type 数组 (array) 存储固定数目的同类型元素 如整型数组存储的是一组整数, 字符数组存储的是一组字符 数组的大小称为数组的尺度 (dimension). 定义格式 : type arrayname[dimension]; 如声明 4 个元素的整型数组 :intarr[4];

More information

untitled

untitled 1 MiniGUI 1.1 MiniGUI for uc/os-ii 1 (1) MiniGUI MiniGUI (2) MiniGUI for uc/os-ii 2 PC MagicARM2200 Windows98/XP/2000 ADS 1.2 µc/os-ii (V2.52) MiniGUI-STR(for uc/os-ii) 3 MiniGUI-STR(for uc/os-ii) MagicARM2200

More information

PTR89 应用程序编程接口 V1.00

PTR89 应用程序编程接口 V1.00 PTR89 便携式热敏打印机 应用程序编程接口 V1.00 如有任何更改, 恕不另行通知 目录 1.0. 简介... 3 1.1. 文档范围和限制... 3 1.2. 参考... 3 2.0. 数据结构... 4 2.1. PRT_PAGE_MODE_PARAM... 4 3.0. API 函数... 5 3.1. Printer_Open... 5 3.2. Printer_Close... 5

More information

Microsoft Word - CX1000-HMI_程序开发_PLC通讯

Microsoft Word - CX1000-HMI_程序开发_PLC通讯 用 VB.Net 开发 CX1000 的 HMI 第二部分和 TwinCAT PLC 通讯 一 TwinCAT 动态库 TwinCAT.Ads.dll The TwinCAT.Ads.dll 是一个.NET 类库, 它提供和 ADS 设备通讯的类 如果 TwinCAT PLC 运行在 IPC 上, 则需要添加的类库是路径 \TwinCAT\ADS Api\.NET\v1.1.4322 下的 TwinCAT.Ads.dll

More information

_汪_文前新ok[3.1].doc

_汪_文前新ok[3.1].doc 普 通 高 校 本 科 计 算 机 专 业 特 色 教 材 精 选 四 川 大 学 计 算 机 学 院 国 家 示 范 性 软 件 学 院 精 品 课 程 基 金 青 年 基 金 资 助 项 目 C 语 言 程 序 设 计 (C99 版 ) 陈 良 银 游 洪 跃 李 旭 伟 主 编 李 志 蜀 唐 宁 九 李 涛 主 审 清 华 大 学 出 版 社 北 京 i 内 容 简 介 本 教 材 面 向

More information

概述

概述 OPC Version 1.8 build 0925 KOCRDK Knight OPC Client Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOC_Init...5 2.2.2 KOC_Uninit...5 2.3...5

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

Microsoft Word - 第5章.doc

Microsoft Word - 第5章.doc MFC 是微软的基础类库, 其核心是以 C++ 类的形式封装了 Windows 的 API 函数 利用 Visual C++ 6.0 可以快速开发基于 MFC 的 Windows 应用程序 通过本章的学习, 读者可以了解 MFC 基础类库, 同时掌握 Windows 应用程序设计的特点和程序设计方法 5.1 什么是 Microsoft 类库 在 1.1.3 节中已经简单地介绍了 MFC 的基本概念,Microsoft

More information

《C语言程序设计》第2版教材习题参考答案

《C语言程序设计》第2版教材习题参考答案 教材 C 语言程序设计 ( 第 2 版 ) 清华大学出版社, 黄保和, 江弋编著 2011 年 10 月第二版 ISBN:978-7-302-26972-4 售价 :35 元 答案版本 本习题答案为 2012 年 2 月修订版本 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p = &a A. *p = *a B. p = *a C.p = &a D. *p =

More information

untitled

untitled 1 行 行 行 行.NET 行 行 類 來 行 行 Thread 類 行 System.Threading 來 類 Thread 類 (1) public Thread(ThreadStart start ); Name 行 IsAlive 行 行狀 Start 行 行 Suspend 行 Resume 行 行 Thread 類 (2) Sleep 行 CurrentThread 行 ThreadStart

More information

本实验需要用到两个特征值, 两个特征值的属性各不相同, 我们同样在 SimpleGATTProfile 中新建即可, 接下来就开始吧 新建特征值表 : 表 3.3 串口透传特征值属性 长度 属性 UUID 功能 (byte) SIMPLEPROFILE_CHA R6 15 可读可写 FFF6 服务器

本实验需要用到两个特征值, 两个特征值的属性各不相同, 我们同样在 SimpleGATTProfile 中新建即可, 接下来就开始吧 新建特征值表 : 表 3.3 串口透传特征值属性 长度 属性 UUID 功能 (byte) SIMPLEPROFILE_CHA R6 15 可读可写 FFF6 服务器 串口透传 前言 : 有了上面的基础, 接下来就可以打造无线串口功能了 实现平台 :WeBee CC2540 模块及功能底板 图 3.117 网蜂 CC2540 模块及功能底板实验现象 : 两台 PC 通过串口连接 CC2540, 通过设置好串口调试助手, 就可以相互收发信息 也可在一台 PC 利用两个串口实现这个功能 实验讲解 : 整个实验用到两个模块, 一个作为服务器 一个作为客户端, 重点为下面两个方向

More information

ebook 86-15

ebook 86-15 15 G t k + d e l e t e _ e v e n t G n o m e G n o m e 15.1 GnomeDialog G t k + G n o m e D i a l o g 15.1.1 G n o m e D i a l o g g n o m e _ d i a l o g _ n e w ( ) G N O M E _ D I A L O G ( d i a l

More information

51 C 51 isp 10 C PCB C C C C KEIL

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,

More information

专题一.ppt

专题一.ppt Android 核心入门分析 Jack.fan Copyright 2007-2008 Farsight. All rights reserved. 主要内容 : } 1 android 系统启动流程分析 } 2 android 系统 JNI 和 Binder 使用简介 } 3 android 系统输入子系统模型分析 1.1 android 系统启动流程分析 : } 1). } init 进程启动控制台进程

More information

}; "P2VTKNvTAnYNwBrqXbgxRSFQs6FTEhNJ", " " string imagedata; if(0!= read_image("a.jpg",imagedata)) { return -1; } string rsp; ytopen_sdk m_sd

}; P2VTKNvTAnYNwBrqXbgxRSFQs6FTEhNJ,   string imagedata; if(0!= read_image(a.jpg,imagedata)) { return -1; } string rsp; ytopen_sdk m_sd tencentyun-youtu c++ sdk for 腾讯云智能优图服务 & 腾讯优图开放平台 安装 运行环境 Linux 依赖项 - curl-7.40.0, 获取更新版本 https://github.com/bagder/curl - openssl-1.0.1k, 获取更新版本 https://github.com/openssl/openssl 构建工程 工程采用 CMake 构建 1.

More information

计算机网络与通讯作业 学号 : 姓名 : 张士广

计算机网络与通讯作业 学号 : 姓名 : 张士广 计算机网络与通讯作业 学号 :35030907 姓名 : 张士广 / FilePoster 关键代码 作者 : 张士广 学号 : 35030907 E-mail: andy.zhshg@163.com 日期 : 2008.12.25 程序描述 : FilePoster 是基于 Win32 平台的网络文件传输程序 开发平台为 Visual C++6.0 程序采用服务器 / 客户机模式, 服务器用于接收数据,

More information

untitled

untitled 1 DBF (READDBF.C)... 1 2 (filetest.c)...2 3 (mousetes.c)...3 4 (painttes.c)...5 5 (dirtest.c)...9 6 (list.c)...9 1 dbf (readdbf.c) /* dbf */ #include int rf,k,reclen,addr,*p1; long brec,erec,i,j,recnum,*p2;

More information

工程项目进度管理 西北工业大学管理学院 黄柯鑫博士 甘特图 A B C D E F G 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 甘特图的优点 : 直观明了 ( 图形化概要 ); 简单易懂 ( 易于理解 ); 应用广泛 ( 技术通用 ) 甘特图的缺点 : 不能清晰表示活动间的逻辑关系 WBS 责任分配矩阵 ( 负责〇审批

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc 2 5 8 11 0 13 1. 13 2. 15 3. 18 1 23 1. 23 2. 26 3. 28 2 36 1. 36 2. 39 3. 42 4. 44 5. 49 6. 51 3 57 1. 57 2. 60 3. 64 4. 66 5. 70 6. 75 7. 83 8. 85 9. 88 10. 98 11. 103 12. 108 13. 112 4 115 1. 115 2.

More information

图形学 Project 2 要求 任意两个多边形, 求出其相交的区域 使用说明 例 1 第一步, 与 Project 1 画多边形的方法相同, 画一个多边形 ; 第二步, 单击 INTERSECT WITH, 随后画出第二个多边形 ; 第三步, 单击 FILL 进行填充

图形学 Project 2 要求 任意两个多边形, 求出其相交的区域 使用说明 例 1 第一步, 与 Project 1 画多边形的方法相同, 画一个多边形 ; 第二步, 单击 INTERSECT WITH, 随后画出第二个多边形 ; 第三步, 单击 FILL 进行填充 图形学 Project 2 要求 任意两个多边形, 求出其相交的区域 使用说明 例 1 第一步, 与 Project 1 画多边形的方法相同, 画一个多边形 ; 第二步, 单击 INTERSECT WITH, 随后画出第二个多边形 ; 第三步, 单击 FILL 进行填充 例 2 单击 CLEAR, 重新回到初始状态, 下面让我们看一下自交多边形的情况 当单击数次后, 出现左图的情况, 之后我们单击

More information

INTRODUCTION TO COM.DOC

INTRODUCTION TO COM.DOC How About COM & ActiveX Control With Visual C++ 6.0 Author: Curtis CHOU mahler@ms16.hinet.net This document can be freely release and distribute without modify. ACTIVEX CONTROLS... 3 ACTIVEX... 3 MFC ACTIVEX

More information

d2.doc

d2.doc 2 Windows Windows Windows Windows Windows Windows Windows Windows Windows Windows DOS Windows Windows Windows 1.0 Microsoft 2 Windows Windows 1.0 DOS Windows 1.0 80286 8086 Microsoft Windows 2.0 Windows

More information

提问袁小兵:

提问袁小兵: C++ 面 试 试 题 汇 总 柯 贤 富 管 理 软 件 需 求 分 析 篇 1. STL 类 模 板 标 准 库 中 容 器 和 算 法 这 部 分 一 般 称 为 标 准 模 板 库 2. 为 什 么 定 义 虚 的 析 构 函 数? 避 免 内 存 问 题, 当 你 可 能 通 过 基 类 指 针 删 除 派 生 类 对 象 时 必 须 保 证 基 类 析 构 函 数 为 虚 函 数 3.

More information

第四章 102 图 4唱16 基于图像渲染的理论基础 三张拍摄图像以及它们投影到球面上生成的球面图像 拼图的圆心是相同的 而拼图是由球面图像上的弧线图像组成的 因此我 们称之为同心球拼图 如图 4唱18 所示 这些拼图中半径最大的是圆 Ck 最小的是圆 C0 设圆 Ck 的半径为 r 虚拟相机水平视域为 θ 有 r R sin θ 2 4畅11 由此可见 构造同心球拼图的过程实际上就是对投影图像中的弧线图像

More information

3.1 num = 3 ch = 'C' 2

3.1 num = 3 ch = 'C' 2 Java 1 3.1 num = 3 ch = 'C' 2 final 3.1 final : final final double PI=3.1415926; 3 3.2 4 int 3.2 (long int) (int) (short int) (byte) short sum; // sum 5 3.2 Java int long num=32967359818l; C:\java\app3_2.java:6:

More information

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F 1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET 2.0 2.0.NET Framework.NET Framework 2.0 ( 3).NET Framework 2.0.NET Framework ( System ) o o o o o o Boxing UnBoxing() o

More information

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple halcon 与 C# 混合编程之 Halcon 代码调用 写在前面 完成 halcon 与 C# 混合编程的环境配置后, 进行界面布局设计构思每一个按钮所需要实现 的功能, 将 Halcon 导出的代码复制至相应的 C# 模块下即可 halcon 源程序 : dev_open_window(0, 0, 512, 512, 'black', WindowHandle) read_image (Image,

More information

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha CYPOK CYPOK 1 UltraEdit Project-->Install Language Tool: Language Suite----->hi-tech picc Tool Name ---->PICC Compiler Executable ---->c:hi-picinpicc.exe ( Command-line Project-->New Project-->File Name--->myc

More information

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式] 指针 Pointers 变量指针与指针变量 Pointer of a variable 变量与内存 (Variables and Memory) 当你声明一个变量时, 计算机将给该变量一个内存, 可以存储变量的值 当你使用变量时, 计算机将做两步操作 : - 根据变量名查找其对应的地址 ; - 通过地址对该地址的变量内容进行读 (retrieve) 或写 (set) 变量的地址称为变量的指针! C++

More information

科 技 与 法 律 Science Technology and Law Vol.89, No.1, 2011 作 品 若 将 打 字 机 也 算 作 字 体 工 具, 那 么 打 字 机 不 是 美 术 作 品, 只 是 一 种 工 业 产 品 字 帖 是 美 术 作 品 么? 笔 者 认 为,

科 技 与 法 律 Science Technology and Law Vol.89, No.1, 2011 作 品 若 将 打 字 机 也 算 作 字 体 工 具, 那 么 打 字 机 不 是 美 术 作 品, 只 是 一 种 工 业 产 品 字 帖 是 美 术 作 品 么? 笔 者 认 为, 专题研究 计算机字体版权保护 张玉瑞 论计算机字体的版权保护 论计算机字体的版权保护 张玉瑞 中国社会科学院法学研究所 北京 100720 摘 要 对计算机字体产生之单字寻求版权保护 是近来知识产权法律中的热点和难点问题 从字体保护的 国际公约 外国法律及其司法实践看 字体工具属于计算机软件产品 其产生的单字没有版权 社会无关第 三人的使用不构成侵犯书法作品版权 计算机字库是字体工具 不是美术作品

More information

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx 运算符重载 Operator Overloading class Point { public: ; double x_, y_; Why Operator Overloading? Point (double x =0, double y = 0):x_(x),y_(y) { int main(){ Point a(1., 2), b(3,4); Point c = a + b; return 0;

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 按钮对象 (button) 当 JavaScript 读到 标记中的 type 属性值为 button 时, 自动建立一个按钮对象, 并将该对象放到表单对象的 elements 数组当中 按钮对象包括 : 普通按钮 (button) 提交按钮 (submit) 重置按钮 (reset) 1. 使用按钮对象的格式 document.forms[ 索引值 ].elements[ 索引值

More information

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 -> 目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController

More information

38 47995529 威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 1059003070 號 39 47995534 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

38 47995529 威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 1059003070 號 39 47995534 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民 1 08414159 惠 鴻 眼 鏡 行 桃 園 市 中 壢 區 福 德 里 中 華 路 一 段 186 號 1 樓 30,000 獨 資 宋 耀 鴻 105/04/27 府 經 登 字 第 1059003866 號 2 17891110 承 元 冷 氣 空 調 工 程 行 桃 園 市 桃 園 區 中 德 里 國 際 路 1 段 98 巷 50 號 2 樓 之 4 200,000 獨 資 詹 安 平

More information

untitled

untitled 不 料 料 例 : ( 料 ) 串 度 8 年 數 串 度 4 串 度 數 數 9- ( ) 利 數 struct { ; ; 數 struct 數 ; 9-2 數 利 數 C struct 數 ; C++ 數 ; struct 省略 9-3 例 ( 料 例 ) struct people{ char name[]; int age; char address[4]; char phone[]; int

More information

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit 6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128

More information

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf (%d, & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9 201 201 21 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp Compilation Error long long cin scanf Time Limit Exceeded 1: A 1 B 1 C 5 D RPG 10 E 10 F 1 G II 1 1 201 201 C 1 # include 2 int main ( void

More information

论文,,, ( &, ), 1 ( -, : - ), ; (, ), ; ;, ( &, ),,,,,, (, ),,,, (, ) (, ),,, :. : ( ), ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ), ( ),,,, 1 原译作 修补者, 但在英译版本中, 被译作

论文,,, ( &, ), 1 ( -, : - ), ; (, ), ; ;, ( &, ),,,,,, (, ),,,, (, ) (, ),,, :. : ( ), ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ), ( ),,,, 1 原译作 修补者, 但在英译版本中, 被译作 * 夏传玲 : 本文简要回顾了国内外定性研究在最近 多年的发展概况, 总结 了定性研究的六个发展趋势和分析策略上的三种流派 在上述两种背景下, 本文探讨了计算机辅助的定性分析给定性研究带来的机遇和挑战, 特别是它和手工操作对比时的优势和劣势, 以及应用这种定性分析技术所可能面临的困难 : 定性研究定性分析 文化差异,, (, ),,,, ( - ) ( - ) ( - ) ( - ) ( - ) (

More information

华恒家庭网关方案

华恒家庭网关方案 LINUX V1.5 1 2 1 2 LINUX WINDOWS PC VC LINUX WINDOWS LINUX 90% GUI LINUX C 3 REDHAT 9 LINUX PC TFTP/NFS http://www.hhcn.com/chinese/embedlinux-res.html minicom NFS mount C HHARM9-EDU 1 LINUX HHARM9-EDU

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

穨complete.PDF

穨complete.PDF 1 2 3 4 1.1 PC 3D -- DirectX 5 1.2 RPG -- VC++ DirectX VC++ DirectX 360 : 6 7 8 9 2.2 10 11 12 13 2.3 14 RPG RPG Map_Struct Map[MAPS] MAPS Scene MakeBackGround() MakeBackGround Blt Blt Windows PatBltpattern

More information

X713_CS_Book.book

X713_CS_Book.book / / /USB ) ; ; C D ; ; B B 1 >> 2 3 B 1 ( > > ) 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 GSM GPS ( ) 手机已连接到 GSM 网络 指示条越多, 接收质量越好 GPS 2 ...........................4.............................. 4 Micro SD (

More information

untitled

untitled 1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 ives.net@gmail.com www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立

More information

版权所有 (C) 2008~2010, 北京飞漫软件技术有限公司, 保留所有权利 无论您以何种方式获得该指南的全部或部分文字或图片资料, 无论是普通印刷品还是电子文档, 北京飞漫软件技术有限公司仅仅授权您阅读的权利, 任何形式的格式转换 再次发布 传播以及复制其内容的全部或部分, 或将其中的文字和图

版权所有 (C) 2008~2010, 北京飞漫软件技术有限公司, 保留所有权利 无论您以何种方式获得该指南的全部或部分文字或图片资料, 无论是普通印刷品还是电子文档, 北京飞漫软件技术有限公司仅仅授权您阅读的权利, 任何形式的格式转换 再次发布 传播以及复制其内容的全部或部分, 或将其中的文字和图 ministudio 用户手册 版本 1.0 修订号 0 适用于 ministudio Ver 1.0.x 北京飞漫软件技术有限公司 2010 年 5 月 版权所有 (C) 2008~2010, 北京飞漫软件技术有限公司, 保留所有权利 无论您以何种方式获得该指南的全部或部分文字或图片资料, 无论是普通印刷品还是电子文档, 北京飞漫软件技术有限公司仅仅授权您阅读的权利, 任何形式的格式转换 再次发布

More information

Microsoft Word - Broker.doc

Microsoft Word - Broker.doc Broker 模式 采用 broker 模式对分布式计算进行简单模拟 系统在一个进程内模拟分布式环境, 因此不涉及网络编程和进程间通信,Broker 通过本地函数调用的方式实现 request 和 response 的转发 采用 broker 模式对分布式计算进行简单的模拟, 要求如下 : 设计四个 server, 一个 server 接收两个整数, 求和并返回结果, 一个 server 接收两个整数,

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc 2 5 8 11 0 1. 13 2. 15 3. 18 1 1. 22 2. 25 3. 27 2 1. 35 2. 38 3. 41 4. 43 5. 48 6. 50 3 1. 56 2. 59 3. 63 4. 65 5. 69 13 22 35 56 6. 74 7. 82 8. 84 9. 87 10. 97 11. 102 12. 107 13. 111 4 114 1. 114 2.

More information

ebook

ebook 3 3 3.1 3.1.1 ( ) 90 3 1966 B e r n s t e i n P ( i ) R ( i ) W ( i P ( i P ( j ) 1) R( i) W( j)=φ 2) W( i) R( j)=φ 3) W( i) W( j)=φ 3.1.2 ( p r o c e s s ) 91 Wi n d o w s Process Control Bl o c k P C

More information

中北大学常规事项财务报销操作指南

中北大学常规事项财务报销操作指南 中 北 大 学 常 规 事 项 财 务 报 销 操 作 指 南 一 办 公 费 报 销 指 南 定 义 : 办 公 费 是 单 位 购 买 按 财 务 会 计 制 度 规 定 不 符 合 固 定 资 产 标 准 的 日 常 办 公 用 品 书 报 杂 志 等 支 出 通 俗 讲 是 指 办 公 场 所 使 用 的 低 值 易 耗 品 办 公 用 品 的 类 别 : 纸 薄 类 笔 尺 类 装 订 类

More information

Microsoft PowerPoint - 6. 用户定义类型User-defined Datatypes.ppt [兼容模式]

Microsoft PowerPoint - 6. 用户定义类型User-defined Datatypes.ppt [兼容模式] 用户定义类型 User-defined Datatypes classes and structs 几何向量 (Geometry Vector) 二维平面上的向量由起点和终点构成 每个点包含两个坐标 (x, y), 因此一个向量需要四个实数表示 Start= (0.9,1.5) Start= (0.4,0.8) int main() { double xstart = 0.4; double xend

More information

<4D F736F F D E67696E652B ECFE0B9D8C8FDCEACB9A6C4DCC4A3BFE9BDE9C9DC5FC8FD5F2E646F63>

<4D F736F F D E67696E652B ECFE0B9D8C8FDCEACB9A6C4DCC4A3BFE9BDE9C9DC5FC8FD5F2E646F63> ArcEngine+C# TIN 相关三维功能模块介绍 ( 三 ) TreeView 控件控制 TIN 颜色 作者 : 刘志远 Email:592418843@qq.com 1. 简介 本篇介绍如何写一个带复选框及颜色指示图标的 TreeView 控件, 该控件与 TIN 模型分级设色方案中的各级颜色相关联 通过该 TreeView 控件复选框的勾选状态决定 TIN 模型对应颜色层的显示与隐藏, 再结合颜色选择下拉框控件,

More information

文件

文件 CH10 文件 1 文件的概念 一 文件分类 二 文件的组织结构 : ASCII 码文件 ( 文本文件 ) 二进制文件 文件是二进制代码的, 则文件就是字节流 文件是 ASCII 码的, 则文件就是字符流, 也是字节流 1 如 : 对于整型变量 x, 其值为 32767 若以文本方式存放, 则共有 5 个字符, 内容为 : 00110011 00110010 00110111 00110110 00110111

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac)

OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac) OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac) 复习 面向对象编程 将实际问题分解成不同的对象 不的对象提供不同的服务 对象之间可以传递消息 例子小李深夜

More information

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2

More information

javaexample-02.pdf

javaexample-02.pdf n e w. s t a t i c s t a t i c 3 1 3 2 p u b l i c p r i v a t e p r o t e c t e d j a v a. l a n g. O b j e c t O b j e c t Rect R e c t x 1 y 1 x 2 y 2 R e c t t o S t r i n g ( ) j a v a. l a n g. O

More information

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc TwinCAT 2001.12.11 TwinCAT 1. TwinCAT... 3 2.... 4... 4...11 3. TwinCAT PLC... 13... 13 PLC IEC 61131-3... 14 4. TwinCAT... 17... 17 5. TwinCAT... 18... 18 6.... 19 Maschine.pro... 19... 27 7.... 31...

More information

C语言的应用.PDF

C语言的应用.PDF AVR C 9 1 AVR C IAR C, *.HEX, C,,! C, > 9.1 AVR C MCU,, AVR?! IAR AVR / IAR 32 ALU 1KBytes - 8MBytes (SPM ) 16 MBytes C C *var1, *var2; *var1++ = *--var2; AVR C 9 2 LD R16,-X ST Z+,R16 Auto (local

More information

Microsoft Word - ch04三校.doc

Microsoft Word - ch04三校.doc 4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2 4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3 changegear

More information

untitled

untitled A, 3+A printf( ABCDEF ) 3+ printf( ABCDEF ) 2.1 C++ main main main) * ( ) ( ) [ ].* ->* ()[] [][] ** *& char (f)(int); ( ) (f) (f) f (int) f int char f char f(int) (f) char (*f)(int); (*f) (int) (

More information