15windows_15_Edit编辑框

15windows_15_Edit编辑框

  1. #include <windows.h>
  2. #include <iostream>
  3. #include "resource.h"
  4. CHAR szText[256] = { 0 };
  5. #define PrintLog(x) WriteConsole(g_hStdout, x, strlen(x), NULL, NULL)
  6. HINSTANCE g_hInst = NULL; //窗口句柄
  7. HANDLE g_hStdout = NULL; //控制台句柄
  8. HWND g_hEdit = NULL; //保存Edit句柄
  9. //WM_CREATE消息处理
  10. void OnCreate(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
  11. {
  12. //创建Edit文本编辑框
  13. g_hEdit = CreateWindow("EDIT", "Hello Edit", WS_EX_CLIENTEDGE|WS_VSCROLL | WS_HSCROLL|WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL | ES_PASSWORD | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOHSCROLL | ES_AUTOVSCROLL,
  14. 0, 0, 100, 200, hWnd, (HMENU)1001, g_hInst, NULL);
  15. }
  16. //让Edit铺满整个客户区
  17. void OnSize(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
  18. {
  19. int nWidth = LOWORD(lParam);
  20. int nHeight = HIWORD(lParam);
  21. if (g_hEdit != NULL)
  22. {
  23. MoveWindow(g_hEdit, 0, 0, nWidth, nHeight, TRUE);
  24. }
  25. }
  26. void OnSave()
  27. {
  28. //获取文字长度 WM_GETTEXTLENGTH 用这个消息`
  29. LRESULT nTextLen = SendMessage(g_hEdit, WM_GETTEXTLENGTH, 0, 0);
  30. //获取文字
  31. CHAR *pszBuff = NULL;
  32. pszBuff = (CHAR *)malloc(nTextLen + 1); //+1就是为了不越界
  33. memset(pszBuff, 0, nTextLen + 1);
  34. SendMessage(g_hEdit, WM_GETTEXT, nTextLen + 1 , (LPARAM)pszBuff);
  35. //保存文件
  36. FILE *pFile = NULL;
  37. fopen_s(&pFile, "c:\\1.txt", "w+"); //打开文件
  38. fwrite(pszBuff, nTextLen, 1, pFile); //把文件写进文件
  39. fclose(pFile);
  40. free(pszBuff);
  41. }
  42. void OnOpen()
  43. {
  44. //打开文件,读取数据
  45. FILE *pFile = NULL;
  46. fopen_s(&pFile, "c:\\1.txt", "r");
  47. fseek(pFile, 0, SEEK_END);//把fseek移动到文件结尾
  48. long nFileLen = ftell(pFile); //获得文件结尾的长度
  49. fseek(pFile, 0, SEEK_SET); //把fseek指针移动到原来位置
  50. CHAR *pszBuff = (CHAR*)malloc(nFileLen + 1); //多一个字符留给‘\0‘用
  51. memset(pszBuff, 0, nFileLen + 1); //把pszBuff置零
  52. fread(pszBuff, nFileLen, 1, pFile); //读取文件内容到buff
  53. fclose(pFile);
  54. //将字符显示在Edit窗口
  55. SendMessage(g_hEdit, WM_SETTEXT, 0, (LPARAM)pszBuff);
  56. }
  57. void OnCommand(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
  58. {
  59. int nNotifyCode = HIWORD(wParam);//Ctrl ID
  60. int nEventID = LOWORD(wParam); // 事件ID
  61. switch (nEventID)
  62. {
  63. case 1001:
  64. switch (nNotifyCode)
  65. {
  66. case EN_CHANGE: //内容发生变化
  67. //MessageBox(NULL, "EN_CHANGE", "EN", MB_OK);
  68. break;
  69. }
  70. break;
  71. case ID_SELALL: //全部选择
  72. //发送全选消息
  73. SendMessage(g_hEdit, EM_SETSEL, 0, -1); //从第0个开始,到-1结尾
  74. break;
  75. case ID_COPY: //复制
  76. SendMessage(g_hEdit, WM_COPY, 0, 0);
  77. break;
  78. case ID_PASTE: //粘贴消息
  79. SendMessage(g_hEdit, WM_PASTE, 0, 0);
  80. break;
  81. case ID_SAVE:
  82. OnSave();
  83. break;
  84. case ID_OPEN:
  85. OnOpen();
  86. break;
  87. case ID_EXIT:
  88. PostQuitMessage(0);
  89. break;
  90. }
  91. }
  92. LRESULT CALLBACK WndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
  93. {
  94. switch (nMsg)
  95. {
  96. case WM_CREATE:
  97. OnCreate(hWnd, nMsg, wParam, lParam);
  98. break;
  99. case WM_COMMAND:
  100. OnCommand(hWnd, nMsg, wParam, lParam);
  101. break;
  102. case WM_SIZE:
  103. OnSize(hWnd, nMsg, wParam, lParam);
  104. break;
  105. case WM_DESTROY:
  106. PostQuitMessage(0);
  107. break;
  108. }
  109. return DefWindowProc(hWnd, nMsg, wParam, lParam);
  110. }
  111. BOOL RegisterWnd(LPSTR pszClassName)
  112. {
  113. WNDCLASSEX wce = { 0 };
  114. wce.cbSize = sizeof(wce);
  115. wce.cbClsExtra = 0;
  116. wce.cbWndExtra = 0;
  117. wce.hbrBackground = HBRUSH(COLOR_BTNFACE + 1);
  118. wce.hCursor = NULL;
  119. wce.hIcon = NULL;
  120. wce.hIconSm = NULL;
  121. wce.hInstance = g_hInst;
  122. wce.lpfnWndProc = WndProc;
  123. wce.lpszClassName = pszClassName;
  124. wce.lpszMenuName = NULL;
  125. wce.style = CS_HREDRAW | CS_VREDRAW;
  126. ATOM atom = RegisterClassEx(&wce);
  127. if (atom == NULL)
  128. {
  129. return FALSE;
  130. }
  131. else
  132. {
  133. return TRUE;
  134. }
  135. }
  136. HWND CreateWnd(LPSTR pszClassName)
  137. {
  138. HMENU hMainMenu = LoadMenu(g_hInst, MAKEINTRESOURCE(IDR_MENU1));
  139. HWND hWnd = CreateWindowEx(0, pszClassName, "飞天", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
  140. CW_USEDEFAULT, NULL, hMainMenu, g_hInst, 0);
  141. return hWnd;
  142. }
  143. void ShowWnd(HWND hWnd)
  144. {
  145. ShowWindow(hWnd, SW_SHOW);
  146. UpdateWindow(hWnd);
  147. }
  148. void Msg()
  149. {
  150. MSG msg = { 0 };
  151. while (GetMessage(&msg, NULL, 0, 0))
  152. {
  153. TranslateMessage(&msg);
  154. DispatchMessage(&msg);
  155. }
  156. }
  157. void ConsoleWnd()
  158. {
  159. AllocConsole();
  160. g_hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
  161. CHAR szText[] = "Debug start:\n";
  162. WriteConsole(g_hStdout, szText, strlen(szText), NULL, NULL);
  163. }
  164. int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd)
  165. {
  166. g_hInst = hInstance;
  167. //ConsoleWnd();
  168. RegisterWnd("oooo");
  169. HWND hWnd = CreateWnd("oooo");
  170. ShowWnd(hWnd);
  171. Msg();
  172. return 0;
  173. }

来自为知笔记(Wiz)

时间: 2024-12-29 11:30:54

15windows_15_Edit编辑框的相关文章

线性布局中按钮在编辑框右边的布局方法

<LinearLayout android:id="@+id/pop_footprint_comment" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true&quo

自定义编辑框VC,可加载更改字体,添加背景图片,显示输入提示信息

搞了一天终于弄了个完整的编辑框控件出来了, 哎,,,搞界面开发还是有点复杂的. 1 #pragma once 2 3 #include "AdvEdit.h" 4 // CBkgEditBox 5 6 class CBkgEditBox : public CEdit 7 { 8 DECLARE_DYNAMIC(CBkgEditBox) 9 10 public: 11 CBkgEditBox(); 12 virtual ~CBkgEditBox(); 13 14 protected: 1

一个简单的记事本编辑框的实现以及搜集的一些窗口风格的预定义

这是一个简单的记事本的窗口过程 1 WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM 2 3 LOCAL winRect:RECT 4 LOCAL editWidth:DWORD 5 LOCAL editHeight:DWORD 6 7 .IF uMsg==WM_DESTROY 8 invoke PostQuitMessage,NULL 9 .ELSEIF uMsg==WM_CREATE 10 ;创建一个编辑框 11

改变静态编辑框static text背景色,字体设置及字体背景

IDC_ShowTime为编辑框ID m_showtime为静态编辑框的变量 1.dlg.h中 CBrush m_showtimeBrush; CFont m_editFont;//字体 2.OnInitDialog()中 m_showtimeBrush.CreateSolidBrush(RGB(204,0,204));  ///编辑框背景颜色 CEdit *m_EditAa=(CEdit *)GetDlgItem(IDC_ShowTime);     //IDC_ShowTime为编辑框ID

MFC编辑框换行实现

MFC中换行实现 在mfc中编辑框允许输入多行时,换行符被表示为<归位><换行>即“\r\n”,用ascii码表示为13 10 如果为编辑框中想要输入换行,就请将编辑框的属性: Auto HScroll 设置为 False MultiLine  设置为 True Want Return 设置为 True txt文本框中的换行实现 换行符被表示为<换行>即“\n”,用ascii码表示为10 MFC编辑框换行实现,布布扣,bubuko.com

自定义searchview的编辑框,搜索按钮,删除按钮,光标等

多说无益,直接上代码. <pre name="code" class="java"><span style="white-space:pre"> </span> Class<?> argClass=mSearchView.getClass(); //指定某个私有属性 Field mSearchHintIconField = argClass.getDeclaredField("mSearc

解决scrollView中嵌套编辑框导致不能上下滑动的问题

EditText设置maxLines之后,文本行数超过maxLines,会网上折叠,上下滑动可以浏览所有文本. 若EditText外层有scrollView,在EditText上下滑动,不会像正常情况那样上,只会滑动了scrollView. 解决办法是: mEt_content.setOnTouchListener(this); // 解决scrollView中嵌套EditText导致不能上下滑动的问题 @Override public boolean onTouch(View v, Motio

C# 编辑框添加灰色提示信息

类似下面这种在编辑框中添加灰色提示信息 private bool t2has = false; //记录文本框是否有文本 private void TextBox2_Leave(object sender, EventArgs e) //鼠标离开触发事件 { if (textBox2.Text == "") //如果文本框没有文本 { t2has = false; //文本框有文本置为假 textBox2.Text = "账号"; //显示提示信息 textBox2

Android 编辑框(EditText)属性学习

EditText的属性很多,这里介绍几个:android:hint="请输入数字!"//设置显示在空间上的提示信息android:numeric="integer"//设置只能输入整数,如果是小数则是:decimalandroid:singleLine="true"//设置单行输入,一旦设置为true,则文字不会自动换行.android:password="true"//设置只能输入密码android:textColor =