C语言课程设计实验报告
更新时间:2023-10-03 12:49:01 阅读量: 综合文库 文档下载
C语言程序设计实验报告
实验名称 姓 名 实验时间 LineEditor 号 学 级 班 实验目的:
1. 2.
窗口都有自己的类名,需要先把该类名及它对应的消息处理掌握简单、常用的算法,并在编程过程中体验各种算法的编
器注册到Windows界面系统中,再根据该类名来创建自己的窗口。 程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。
3. 明确在Windows Form应用中,Windows界面系统通过消息与应用程序进行交互,每个窗口都有相应的消息处理器,处理各自的用户输入及界面重绘等逻辑。
实验要求:
1、 响应用户的普通字符输入
2、 可以用光标键及HOME、END键来移动光标 3、 可以用鼠标键来移动光标
4、 可以用BACKSPACE及DELETE键来删除输入的内容
实验内容:
源代码
#include
#include
HINSTANCE _HInstance; // 应用程序句柄
TCHAR _Title[] = _T(\简单文本框\定义窗口的标题
TCHAR _WindowClass[] = _T(\主窗口类名
ATOM _RegisterClass(); // 注册主窗口类
HWND _CreateWindow(int nCmdShow); // 创建主窗口
LRESULT CALLBACK _WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); // 主窗口消息处理函数
TCHAR _TextBoxClass[] = _T(\文本框的类名
ATOM _RegisterTextBoxClass(); // 注册文本框的类
HWND _CreateTextBoxWindow(HWND hParentWnd); // 创建文本框
LRESULT CALLBACK _TextBoxWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); // 文本框窗口消息处理函数
void _DrawText(HDC hDC); // 绘制文本 void _SetCaretPos(HWND hWnd); // 设置光标位置
void _UpdateWindow(HWND hWnd); // 更新窗口
// 一些常量定义
#define MAINWINDOW_WIDTH 600 // 主窗口宽度
#define MAINWINDOW_HEIGHT 400 // 主窗口高度
#define TEXTBOX_WIDTH 400 // 文本框宽度
#define TEXTBOX_HEIGHT 36 // 文本框高度
#define TEXTBOX_MAXLENGTH 1024 // 文本框中文本的最大长度
TCHAR _String[TEXTBOX_MAXLENGTH + 1] = _T(\文本
int _StringPosition = ::_tcslen(_String); // 光标插入点所在的位置
int APIENTRY _tWinMain(HINSTANCE hInstance, // 当前的应用程序句柄
HINSTANCE hPrevInstance, // 前一个应用程序实例的句柄(在Win32上,始终为NULL)
LPTSTR lpCmdLine, // 命令行参数
int nCmdShow // 窗口的显示样式
) {
_HInstance = hInstance;
_RegisterClass(); // 注册窗口类
if(_CreateWindow(nCmdShow) == NULL) // 创建窗口
return FALSE;
MSG msg;
while (::GetMessage(&msg, NULL, 0, 0)) // 从消息队列中获取消息
{
::TranslateMessage(&msg); // 转译一些特殊的消
息
::DispatchMessage(&msg); // 执行消息处理
}
return (int)msg.wParam; }
// 注册应用程序窗口类
ATOM _RegisterClass() {
WNDCLASSEX wc;
::ZeroMemory(&wc, sizeof(wc)); // 作为一步清空,是为了让未赋值的字段的默认值为(或NULL)
wc.cbSize = sizeof(wc);
wc.style = CS_HREDRAW | CS_VREDRAW; // 指定当窗口横向和纵向的尺寸发生变化时都会重绘窗口
wc.hInstance = _HInstance;
wc.hbrBackground = (HBRUSH)( COLOR_APPWORKSPACE + 1); // 指定主窗口背景为“工作区域”系统颜色
wc.lpszClassName = _WindowClass; // 此为要注册的类名,创建窗口时要以此类名为标识符
wc.lpfnWndProc = _WndProc; // 此为处理窗口消息的函数
return ::RegisterClassEx(&wc); // 调用API函数注册窗口类
}
// 创建窗口
HWND _CreateWindow(int nCmdShow) {
HWND hWnd = ::CreateWindow(_WindowClass, _Title, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, MAINWINDOW_WIDTH, MAINWINDOW_HEIGHT, NULL, NULL, _HInstance, NULL);
if(hWnd == NULL)
return NULL;
::ShowWindow(hWnd, nCmdShow);
::UpdateWindow(hWnd);
return hWnd; }
// 窗口处理过程
正在阅读:
C语言课程设计实验报告10-03
2016物理中考分类解析-力03-12
学生会办公室下半年工作计划01-09
《论美国的民主》读书报告09-24
2021年苏教版六年级语文下册期末提升练习题及答案07-20
MATLAB论文05-10
2016届湖北省龙泉中学、宜昌一中高三10月联考政治试题08-15
濮阳市小学排名02-15
20XX医院感染管理科工作计划范文12-11
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 语言
- 课程
- 实验
- 报告
- 设计
- 财务会计学教学内容设计
- 大学E英语教程4读写考试复习 - 图文
- 股权转让中土地增值税需要缴纳吗
- 比赛通知
- 设计三相异步电动机的能耗制动控制系统
- 武警冬季施工方案2014年
- 反义词近义词多音字同音字形近字
- 物流车4G车载监控系统解决方案
- 2018年杭州市西湖区数学一模考试
- 苏教版 五上《复式统计表》教学反思
- 2018年原创经典ISO9001 IATF16949最新质量目标过程绩效指标清单(49项绩效指标)
- 成功的定义
- 合同范本之涉外合同法律适用规定
- 中外阅读对比
- 二十四节气的C语言算法
- 大学物理第11章 稳恒电流磁场
- 普通教育学试卷 - 共十一套
- 2016-2017学年广东深圳罗湖区深圳市翠园中学高二下学期期中理科数学试卷
- 9、保证安全生产、文明施工、减少扰民、降低环境污染和噪音的措施
- 厦门大学专升本论文写作指南在线测试