當前位置:編程學習大全網 - 源碼下載 - Vc新聞源代碼

Vc新聞源代碼

//頭文件//

主頁面

#定義CM_FILE_SAVEAS 9072

#定義CM_FILE_EXIT 9071

#定義CM_FILE_OPEN 9070

#定義CM _關於9069

//主程序文件//

主網站

/*****************************************************/

# include & ltwindows.h & gt

#雜註hdrstop

#包含“Main.h”

static char g _ SZ class name[]= " mywindow class ";

靜態HINSTANCE g _ hInst = NULL

# define IDC _ MAIN _ TEXT 1001

BOOL加載文件(HWND hEdit,LPSTR pszFileName)

{

處理hFile

BOOL bSuccess = FALSE

hFile = CreateFile(pszFileName,GENERIC_READ,FILE_SHARE_READ,NULL,

OPEN_EXISTING,0,0);

if(hFile!=無效句柄值)

{

DWORD dwFileSize

dwFileSize = GetFileSize(hFile,NULL);

if(dwFileSize!= 0xFFFFFFFF)

{

LPSTR pszFileText

pszFileText =(LPSTR)global alloc(GPTR,dw filesize+1);

if(pszFileText!=空)

{

DWORD dwRead

if(ReadFile(hFile,pszFileText,dwFileSize,& ampdwRead,NULL))

{

pszFileText[dw filesize]= 0;//空終止符

if(SetWindowText(hEdit,pszFileText))

b成功=真;//成功了!

}

global free(pszFileText);

}

}

close handle(hFile);

}

返回b成功;

}

BOOL保存文件(HWND hEdit,LPSTR pszFileName)

{

處理hFile

BOOL bSuccess = FALSE

hFile = CreateFile(pszFileName,GENERIC_WRITE,0,0,

CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);

if(hFile!=無效句柄值)

{

DWORD dwTextLength

dw textlength = GetWindowTextLength(hEdit);

if(dwTextLength & gt;0)//沒有文字就不用麻煩了。

{

LPSTR pszText

pszText =(LPSTR)global alloc(GPTR,dwTextLength+1);

if(pszText!=空)

{

if(GetWindowText(hEdit,pszText,dwTextLength + 1))

{

DWORD dwWritten

if(WriteFile(hFile,pszText,dwTextLength,& ampdwWritten,NULL))

b成功=真;

}

global free(pszText);

}

}

close handle(hFile);

}

返回b成功;

}

BOOL DoFileOpenSave(HWND hwnd,BOOL bSave)

{

OPENFILENAME ofn

char SZ filename[MAX _ PATH];

zero memory(& amp;ofn,sizeof(ofn));

SZ filename[0]= 0;

ofn . l structsize = sizeof(ofn);

ofn.hwndOwner = hwnd

ofn.lpstrFilter = "文本文件(*。txt)\0*。所有文件(*。*)\0*.*\0\0";

ofn.lpstrFile = szFileName

ofn.nMaxFile = MAX _ PATH

ofn.lpstrDefExt = " txt

如果(b保存)

{

ofn。flags = OFN _探險家| OFN _路徑必須存在| OFN _隱藏只讀|

OFN _ overwrite prompt;

if(getsave filename(& amp;ofn))

{

如果(!SaveFile(GetDlgItem(hwnd,IDC_MAIN_TEXT),szFileName))

{

MessageBox(hwnd,“保存文件失敗。”,“錯誤”,

MB _ OK | MB _感嘆號);

返回FALSE

}

}

}

其他

{

ofn。flags = OFN _資源管理器| OFN _文件必須存在| OFN _隱藏只讀;

if(getopen filename(& amp;ofn))

{

如果(!LoadFile(GetDlgItem(hwnd,IDC_MAIN_TEXT),szFileName))

{

MessageBox(hwnd,“文件加載失敗。”,“錯誤”,

MB _ OK | MB _感嘆號);

返回FALSE

}

}

}

返回TRUE

}

LRESULT回調WndProc(HWND hwnd,UINT消息,WPARAM wParam,LPARAM lParam)

{

開關(消息)

{

案例WM_CREATE:

CreateWindow("EDIT ","",

WS _ CHILD | WS _ VISIBLE | WS _ HSCROLL | WS _ VSCROLL | ES _ MULTILINE |

ES_WANTRETURN,

CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,

hwnd,(HMENU)IDC_MAIN_TEXT,g_hInst,NULL);

SendDlgItemMessage(hwnd,IDC_MAIN_TEXT,WM_SETFONT,

(WPARAM)GetStockObject(DEFAULT _ GUI _ FONT),MAKELPARAM(TRUE,0));

打破;

案例WM_SIZE:

如果(wParam!= SIZE _最小化)

MoveWindow(GetDlgItem(hwnd,IDC_MAIN_TEXT),0,0,LOWORD(lParam),

HIWORD(lParam),TRUE);

打破;

案例WM_SETFOCUS:

SetFocus(GetDlgItem(hwnd,IDC _ MAIN _ TEXT));

打破;

案例WM_COMMAND:

開關(低字(wParam))

{

案例CM_FILE_OPEN:

DoFileOpenSave(hwnd,FALSE);

打破;

案例CM_FILE_SAVEAS:

DoFileOpenSave(hwnd,TRUE);

打破;

案例CM _文件_退出:

PostMessage(hwnd,WM_CLOSE,0,0);

打破;

案例CM _關於:

MessageBox (NULL,“Windows文件編輯器!\n使用Win32 API”,“關於...”, 0);

}

打破;

案例WM_CLOSE:

destroy window(hwnd);

打破;

案例WM_DESTROY:

PostQuitMessage(0);

打破;

默認值:

返回DefWindowProc(hwnd,Message,wParam,lParam);

}

返回0;

}

int WINAPI WinMain(h instance h instance,HINSTANCE hPrevInstance,

LPSTR lpCmdLine,int nCmdShow)

{

WNDCLASSEX WndClass

HWND hwnd

味精味精;

g _ hInst = hInstance

wnd class . CB size = sizeof(WNDCLASSEX);

wnd class . style = 0;

WndClass.lpfnWndProc = WndProc

wnd class . cbclsextra = 0;

wnd class . cbwndextra = 0;

wnd class . h instance = g _ hInst;

WndClass.hIcon = LoadIcon(NULL,IDI _應用);

wnd class . hcursor = load cursor(NULL,IDC _ ARROW);

wnd class . HBR background =(HBRUSH)(COLOR _ WINDOW+1);

wnd class . lpszmenuname = " main menu ";

wnd class . lpsz class name = g _ SZ class name;

WndClass.hIconSm = LoadIcon(NULL,IDI _應用);

如果(!register classex(& amp;WndClass))

{

MessageBox(0,"窗口註冊失敗!",“錯誤!”,

MB _ icon感嘆號| MB _ OK | MB _ system modal);

返回0;

}

hwnd = CreateWindowEx(

WS_EX_CLIENTEDGE,

g_szClassName,

“壹個文件程序”,

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,CW_USEDEFAULT,320,240,

NULL,NULL,g_hInst,NULL);

if(hwnd == NULL)

{

MessageBox(0,"窗口創建失敗!",“錯誤!”,

MB _ icon感嘆號| MB _ OK | MB _ system modal);

返回0;

}

ShowWindow(hwnd,nCmdShow);

更新窗口(hwnd);

while(GetMessage(& amp;Msg,NULL,0,0))

{

翻譯消息(& amp味精);

dispatch message(amp;味精);

}

返回Msg.wParam

}

  • 上一篇:如何用java向指定的EXCEL單元格中寫入數據?
  • 下一篇:AI功夫源代碼
  • copyright 2024編程學習大全網