您的位置:首页 > 其它

按钮 下拉列表 还有一个简单的记事本 文件读写等

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;}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐