按钮 下拉列表 还有一个简单的记事本 文件读写等
2014-04-23 14:17
453 查看
// WinEdit.cpp : Defines the entry point for the application. // #include "stdafx.h" #include "stdlib.h" #include "stdio.h" #include "resource.h" HINSTANCE g_hInst = NULL; HWND g_hEdit = NULL; void OnCreate( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam ) { g_hEdit = CreateWindow( "EDIT", "Hello EDIT", WS_CHILD|WS_VISIBLE|WS_HSCROLL| WS_VSCROLL|ES_AUTOHSCROLL| ES_AUTOVSCROLL|ES_MULTILINE, 0, 0, 100, 200, hWnd, (HMENU)1001, g_hInst, NULL ); } void OnSize( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam ) { int nWidth = LOWORD( lParam ); int nHeight= HIWORD( lParam ); if( NULL != g_hEdit ) { //将EDIT窗口填满整个客户区 MoveWindow( g_hEdit, 0, 0, nWidth, nHeight, TRUE ); } } void OnSave( ) { //获取文字长度 LRESULT nTextLen = SendMessage( g_hEdit, WM_GETTEXTLENGTH, 0, 0 ); //获取文字 CHAR * pszBuff = NULL; pszBuff = (CHAR *)malloc( nTextLen + 1 ); memset( pszBuff, 0, nTextLen + 1 ); SendMessage( g_hEdit, WM_GETTEXT, nTextLen + 1, (LPARAM)pszBuff ); //MessageBox( NULL, pszBuff, "WinEdit", MB_OK ); //保存文件 FILE * pFile = fopen( "C:\\1.txt", "w+" ); fwrite( pszBuff, nTextLen, 1, pFile ); fclose( pFile ); //释放内存 free( pszBuff ); } void OnOpen( ) { //打开文件读取数据 FILE * pFile = fopen( "C:\\1.txt", "r" ); //获取文件长度 fseek( pFile, 0, SEEK_END ); long nFileLen = ftell( pFile ); fseek( pFile, 0, SEEK_SET ); //读取文件数据 CHAR * pszBuf = (CHAR *) malloc( nFileLen + 1 ); memset( pszBuf, 0, nFileLen + 1 ); fread( pszBuf, nFileLen, 1, pFile ); //关闭文件 fclose( pFile ); //将字符显示在EDIT窗口 SendMessage( g_hEdit, WM_SETTEXT, 0, (LPARAM)pszBuf ); //释放内存 free( pszBuf ); } void OnCommand( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam ) { int nNotifyCode = HIWORD( wParam ); int nEventID = LOWORD( wParam ); switch( nEventID ) { case 1001: { switch( nNotifyCode ) { case EN_CHANGE: //MessageBox( NULL, "EN_CHANGE", // "WinEdit", MB_OK ); break; } } break; case ID_SELALL: SendMessage( g_hEdit, EM_SETSEL, 0, -1 ); break; case ID_COPY: SendMessage( g_hEdit, WM_COPY, 0, 0 ); break; case ID_PASTE: SendMessage( g_hEdit, WM_PASTE, 0, 0 ); break; case ID_SAVE: OnSave( ); break; case ID_OPEN: OnOpen( ); break; } } LRESULT CALLBACK WndProc( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam ) { switch( nMsg ) { case WM_CREATE: OnCreate( hWnd, nMsg, wParam, lParam ); break; case WM_SIZE: OnSize( hWnd, nMsg, wParam, lParam ); break; case WM_COMMAND: OnCommand( hWnd, nMsg, wParam, lParam ); break; case WM_DESTROY: PostQuitMessage( 0 ); return 0; } return DefWindowProc( hWnd, nMsg, wParam, lParam ); } BOOL RegisterWnd( LPSTR pszClassName ) { WNDCLASSEX wce = { 0 }; wce.cbSize = sizeof( wce ); wce.cbClsExtra = 0; wce.cbWndExtra = 0; wce.hbrBackground = HBRUSH(COLOR_WINDOW); wce.hCursor = NULL; wce.hIcon = NULL; wce.hIconSm = NULL; wce.hInstance = g_hInst; wce.lpfnWndProc = WndProc; wce.lpszClassName = pszClassName; wce.lpszMenuName = NULL; wce.style = CS_HREDRAW|CS_VREDRAW; ATOM nAtom = RegisterClassEx( &wce ); if( 0 == nAtom ) { return FALSE; } return TRUE; } HWND CreateWnd( LPSTR pszClassName ) { HMENU hMenu = LoadMenu( g_hInst, MAKEINTRESOURCE(IDR_MAIN) ); HWND hWnd = CreateWindowEx( WS_EX_CLIENTEDGE, pszClassName, "我的记事本", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, hMenu, g_hInst, NULL ); return hWnd; } void DisplayWnd( HWND hWnd ) { ShowWindow( hWnd, SW_SHOW ); UpdateWindow( hWnd ); } void Message( ) { MSG msg = { 0 }; while( GetMessage( &msg, NULL, 0, 0 ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { g_hInst = hInstance; RegisterWnd( "MYWND" ); HWND hWnd = CreateWnd( "MYWND" ); DisplayWnd( hWnd ); Message( ); return 0; } //上面是一个记事本小程序// WinComboBox.cpp : Defines the entry point for the application.//#include "stdafx.h"#include "stdio.h"#include "resource.h"HINSTANCE g_hInst = NULL;void OnCreate( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam ){ //简单组合框的创建CreateWindow( "COMBOBOX", "SIMPLE",WS_CHILD|WS_VISIBLE|CBS_SIMPLE,50,50, 120, 300, hWnd, (HMENU)1001, g_hInst, NULL );//下拉式组合框的创建CreateWindow( "COMBOBOX", "DROPDOWN",WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWN,200, 50, 120, 300, hWnd,(HMENU)1002, g_hInst, NULL );//下拉列表式组合框的创建CreateWindow( "COMBOBOX", "DROPDOWNLIST",WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWNLIST,350,50, 120, 100, hWnd,(HMENU)1003, g_hInst, NULL );}void OnAdd( HWND hWnd ){ //获取COMBOBOX窗口句柄HWND hSimple = GetDlgItem( hWnd, 1001 );HWND hDropDown = GetDlgItem( hWnd, 1002 );HWND hDropList = GetDlgItem( hWnd, 1003 );//添加多个选项CHAR szText[] = "ComboBox 0";for(int nIndex=0; nIndex<10; nIndex++ ){ //添加选项LRESULT nItem = SendMessage( hSimple, CB_ADDSTRING, 0, (LPARAM)szText );//设置项的数据SendMessage( hSimple, CB_SETITEMDATA,nItem, 100+nIndex );SendMessage( hDropDown, CB_ADDSTRING, 0, (LPARAM)szText );SendMessage( hDropList,CB_ADDSTRING, 0, (LPARAM)szText );//改变选项内容szText[9]++;}}void OnDel( HWND hWnd ){ //获取COMBOBOX窗口句柄HWND hSimple = GetDlgItem( hWnd, 1001 );HWND hDropDown = GetDlgItem( hWnd, 1002 );HWND hDropList = GetDlgItem( hWnd, 1003 );//删除指定项SendMessage( hSimple, CB_DELETESTRING,5, 0 );SendMessage( hDropDown, CB_DELETESTRING, 5, 0 );SendMessage( hDropList, CB_DELETESTRING, 5, 0 );}void OnReset( HWND hWnd ){ //获取COMBOBOX窗口句柄HWND hSimple = GetDlgItem( hWnd, 1001 );HWND hDropDown = GetDlgItem( hWnd, 1002 );HWND hDropList = GetDlgItem(hWnd, 1003 );//清空所有项SendMessage( hSimple, CB_RESETCONTENT, 0, 0 );SendMessage( hDropDown, CB_RESETCONTENT, 0, 0 );SendMessage( hDropList, CB_RESETCONTENT, 0, 0 );}void OnSelect( HWND hWnd ){ //获取COMBOBOX窗口句柄HWND hSimple = GetDlgItem( hWnd, 1001 );HWND hDropDown= GetDlgItem( hWnd, 1002 );HWND hDropList = GetDlgItem( hWnd, 1003 );//获取和设置选择项LRESULT nSel = SendMessage( hSimple, CB_GETCURSEL, 0, 0 );//获取数据LRESULT nValue = SendMessage( hSimple, CB_GETITEMDATA, nSel, 0 );CHAR szInfo[260] = { 0 };sprintf( szInfo, "%d",nValue );MessageBox( NULL, szInfo, "WinCombo", MB_OK );//设置选择项SendMessage( hDropDown, CB_SETCURSEL, nSel, 0 );CHAR szText[] = "ComboBox 5";SendMessage( hDropList, CB_SELECTSTRING, -1, (LPARAM)szText );}void OnFind( HWND hWnd ){ //获取COMBOBOX窗口句柄HWND hSimple= GetDlgItem( hWnd, 1001 );HWND hDropDown = GetDlgItem( hWnd, 1002 );HWND hDropList = GetDlgItem( hWnd, 1003 );//查找字符串CHAR szText[] = "ComboBox 5";LRESULT nFind1 = SendMessage( hSimple, CB_FINDSTRING, -1, (LPARAM)szText );SendMessage( hDropDown, CB_SETCURSEL,nFind1, 0 );SendMessage( hDropList, CB_SETCURSEL, nFind1, 0 );}void OnPath( HWND hWnd ){ //获取COMBOBOX窗口句柄HWND hSimple = GetDlgItem( hWnd, 1001 );HWND hDropDown = GetDlgItem( hWnd, 1002 );HWND hDropList = GetDlgItem( hWnd, 1003 );//显示目录CHAR szPath[MAX_PATH]= "C:\\*.*";SendMessage( hSimple, CB_DIR,DDL_DIRECTORY|DDL_ARCHIVE,(LPARAM)szPath );SendMessage( hDropDown, CB_DIR,DDL_DIRECTORY|DDL_ARCHIVE,(LPARAM)szPath );SendMessage( hDropList, CB_DIR,DDL_DIRECTORY|DDL_ARCHIVE,(LPARAM)szPath );}void OnCommand( HWND hWnd,UINT nMsg,WPARAM wParam, LPARAM lParam ){int nNotifyCode = HIWORD( wParam );int nEventID = LOWORD( wParam );switch( nEventID ){case ID_ADD:OnAdd( hWnd );break;case ID_DEL:OnDel( hWnd );break;case ID_RESET:OnReset( hWnd );break;case ID_SEL:OnSelect( hWnd );break;caseID_FIND:OnFind( hWnd );break;case ID_PATH:OnPath( hWnd );break;case 1001:{HWND hSimple = GetDlgItem( hWnd, 1001 );HWND hDropDown = GetDlgItem( hWnd, 1002 );HWND hDropList = GetDlgItem( hWnd, 1003 );LRESULT nSel = 0;switch( nNotifyCode ){case CBN_SELCHANGE:nSel= SendMessage( hSimple, CB_GETCURSEL, 0, 0 );SendMessage( hDropDown, CB_SETCURSEL, nSel, 0 );SendMessage( hDropList, CB_SETCURSEL, nSel, 0 );//MessageBox( NULL, "CBN_SELCHANGE",// "WinCombo", MB_OK );break;}}break;}}LRESULT CALLBACK WndProc( HWND hWnd, UINTnMsg, WPARAM wParam, LPARAM lParam ){switch( nMsg ){case WM_CREATE:OnCreate( hWnd, nMsg, wParam, lParam );brea4000k;case WM_COMMAND:OnCommand( hWnd, nMsg, wParam, lParam );break;case WM_DESTROY:PostQuitMessage( 0 );return 0;}return DefWindowProc( hWnd, nMsg,wParam,lParam );}BOOL RegisterWnd( LPSTR pszClassName ){WNDCLASSEX wce = { 0 };wce.cbSize = sizeof( wce );wce.cbClsExtra = 0;wce.cbWndExtra = 0;wce.hbrBackground = HBRUSH(COLOR_BTNFACE+1);wce.hCursor = NULL;wce.hIcon = NULL;wce.hIconSm = NULL;wce.hInstance = g_hInst;wce.lpfnWndProc= WndProc;wce.lpszClassName = pszClassName;wce.lpszMenuName = NULL;wce.style = CS_HREDRAW|CS_VREDRAW;ATOM nAtom = RegisterClassEx( &wce );if( 0 == nAtom ){return FALSE;}return TRUE;}HWND CreateWnd( LPSTR pszClassName ){HMENU hMenu = LoadMenu( g_hInst,MAKEINTRESOURCE(IDR_MAIN));HWND hWnd = CreateWindowEx( 0,pszClassName, "MyWnd", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, NULL, hMenu, g_hInst,NULL );return hWnd;}void DisplayWnd( HWND hWnd ){ShowWindow( hWnd, SW_SHOW );UpdateWindow( hWnd );}voidMessage( ){MSG msg = { 0 };while( GetMessage( &msg, NULL, 0, 0 ) ){TranslateMessage( &msg );DispatchMessage( &msg );}}int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){g_hInst = hInstance;RegisterWnd( "MYWND");HWND hWnd = CreateWnd( "MYWND" );DisplayWnd( hWnd );Message( );return 0;}
相关文章推荐
- 一个简单的下拉列表
- 文件读写工具简单实现(二)--选择文件按钮
- Android读写文件的一个简单入门的例子
- iOS每日一记之———————————————一个简单的列表排序 还有模糊搜索
- 一个简单的mfc单页界面文件读写程序(MFC 程序入口和执行流程)
- 在工具栏(ToolBar)上添加ComboBox控件,为何每次在下拉列表中选择时,都会自动的选中工具栏上的一个按钮?
- 黑马程序员--图形界面中的鼠标,键盘两个事件,做一个磁盘的文件列表,菜单,子菜单,模拟记事本。网络编程,TCP的通信协议的特点
- 一个简单的python读写文件脚本
- 设计一个JFrame窗口,输入学生的基本信息,包括学号、姓名、学院、专业(下拉列表)、班级、籍贯(级联)、性别(单选按钮)、爱好(多选)、备注等,在界面中包括提交和重填按钮。提交后弹出窗口显示学生信息
- 【转载】关于:读写xls文件,提供下载的一个小例子(jxl 的简单运用) - 创建文件
- 【转载】关于:读写xls文件,提供下载的一个小例子(jxl 的简单运用) - 读取文件
- 一个简单的文件读写实例
- 简单的自绘制按钮 和下拉列表的消息事件等 14.4.24
- 【转载】关于:读写xls文件,提供下载的一个小例子(jxl 的简单运用) - 高级操作
- php课程---建立一个简单的下拉列表框
- 一个漂亮的下拉列表,去掉了灰色倒三角按钮
- 一个简单的文件读写、复制的例子
- C++文件读写详解(ofstream,ifstream,fstream)还有简单使用
- 文件读写工具简单实现(三)---读取按钮的实现
- iOS 点击按钮出现一个下拉列表