📄 myproject.cpp
字号:
//TCHAR path[30]=TEXT("\\My Documents\\002.jpg");
//LPCTSTR image_name = _T("");
//LPCTSTR path_fname = path + image_name;
//
// Load the image
//
TCHAR* path;
path=new TCHAR[30];
path=TEXT("\\My Documents\\002.jpg");
image.Load (picDC ,path );
image.Draw (picDC,
10,
50,
225-148,
185-35,
148,
35);
image.Draw (picDC,
15,
200,
273-103,
446-373,
103,
373);
//调用绘制图像函数
//OnDraw();
EndPaint (hWnd, &ps);
return 0;
}
//----------------------------------------------------------------------
// DoCommandMain - Process WM_COMMAND message for window.
//
//
LRESULT DoCommandMain (HWND hWnd, UINT wMsg, WPARAM wParam,
LPARAM lParam) {
WORD idItem, wNotifyCode;
HWND hwndCtl;
INT i;
// Parse the parameters.
idItem = (WORD) LOWORD (wParam);
wNotifyCode = (WORD) HIWORD(wParam);
hwndCtl = (HWND) lParam;
// Call routine to handle control message.
for (i = 0; i < dim(MainCommandItems); i++) {
if (idItem == MainCommandItems[i].Code)
return (*MainCommandItems[i].Fxn)(hWnd, idItem, hwndCtl,
wNotifyCode);
}
return 0;
}
//----------------------------------------------------------------------
// DoMainCommandExit - Process Program Exit command.
//
LPARAM DoMainCommandExit (HWND hWnd, WORD idItem, HWND hwndCtl,
WORD wNotifyCode) {
SendMessage (hWnd, WM_CLOSE, 0, 0);
return 0;
}
//-----------------------------------------------------------------------------
// 以下为自定义菜单响应函数,用于响应自己工程的菜单。
//
//No.1 通过设置INI 文件来修改 默认位置 ///////
LPARAM DoMainCommandDefLocSet (HWND hWnd, WORD idItem, HWND hwndCtl,
WORD wNotifyCode)
{
char filename[] = "\\My Documents\\Haitu.ini";
LPCTSTR LPfilename=TEXT("\\My Documents\\Haitu.ini");
CIni Ini(filename,LPfilename);
//以下三个【公有变量】用于测试发送数据和文字给对话框,并从对话框获得数据和文字
//TCHAR a_tchar[]=TEXT("你好啊,蔡志明");
//TCHAR* MapName_TCHAR;
//TCHAR* JingDu_TCHAR;
//TCHAR* WeiDu_TCHAR;
char* MapName_char;
char* JingDu_char;
char* WeiDu_char;
MapName_char=new char[40];
JingDu_char=new char[40];
WeiDu_char=new char[40];
MapName_TCHAR=new TCHAR[20];
JingDu_TCHAR =new TCHAR[20];
WeiDu_TCHAR=new TCHAR[20];
//初始化变量, data和name
Ini.ReadData("默认海图","海图");
MapName_char=Ini.data;
Ini.ReadData(MapName_char,"缺省经度");
JingDu_char=Ini.data;
Ini.ReadData(MapName_char,"缺省纬度");
WeiDu_char=Ini.data;
//返回实际需要的MapName_TCHAR缓冲区的大小
int k=MultiByteToWideChar(CP_ACP,0,MapName_char,-1,MapName_TCHAR,0);;
MultiByteToWideChar(CP_ACP,0,MapName_char,-1,MapName_TCHAR,k);
k=MultiByteToWideChar(CP_ACP,0,JingDu_char,-1,JingDu_TCHAR,0);
MultiByteToWideChar(CP_ACP,0,JingDu_char,-1,JingDu_TCHAR,k);
k=MultiByteToWideChar(CP_ACP,0,WeiDu_char,-1,WeiDu_TCHAR,0);
MultiByteToWideChar(CP_ACP,0,WeiDu_char,-1,WeiDu_TCHAR,k);
///////////////////////////
//调用默认位置设置对话框
DialogBox (
hInst, // Handle to the application instance.
MAKEINTRESOURCE (ID_DlgDefLocSet), // Identifies the dialog box template.
hwndMain, // Handle to the owner window.
DialogProc_DefLocSet); // Pointer to the dialog box procedure.
//以下三句将从对话框送回的 TCHAR数据转换为 char 类型
//k=WideCharToMultiByte(CP_ACP,0,MapName_TCHAR,-1,MapName_char,0,NULL,NULL);
WideCharToMultiByte(CP_ACP,0,MapName_TCHAR,-1,MapName_char,128,NULL,NULL);
// k=WideCharToMultiByte(CP_ACP,0,JingDu_TCHAR,-1,JingDu_char,0,NULL,NULL);
WideCharToMultiByte(CP_ACP,0,JingDu_TCHAR,-1,JingDu_char,128,NULL,NULL);
// k=WideCharToMultiByte(CP_ACP,0,JingDu_TCHAR,-1,WeiDu_char,0,NULL,NULL);
WideCharToMultiByte(CP_ACP,0,WeiDu_TCHAR,-1,WeiDu_char,128,NULL,NULL);
//以下保存数据到INI文件
Ini.Write(MapName_char,"缺省经度",JingDu_char);
Ini.Write(MapName_char,"缺省纬度",WeiDu_char);
Ini.Save();
//以下用于检验
//double jingdu=Ini.ReadData(MapName_char,"缺省经度");
//double weidu=Ini.ReadData(MapName_char,"缺省纬度");
//printf("缺省地图=%s\n",MapName_char);
//printf("缺省纬度=%f\n",weidu);
//printf("缺省经度=%f\n",jingdu);
//注:用完后的指针变量要free()释放掉。
if( (MapName_char)!=NULL ) { free(MapName_char); (MapName_char)=NULL; }
if( (JingDu_char)!=NULL ) { free(JingDu_char); (JingDu_char)=NULL; }
if( (WeiDu_char)!=NULL ) { free(WeiDu_char); (WeiDu_char)=NULL; }
if( (MapName_TCHAR)!=NULL ) { free(MapName_TCHAR); (MapName_TCHAR)=NULL; }
if( (JingDu_TCHAR)!=NULL ) { free(JingDu_TCHAR); (JingDu_TCHAR)=NULL; }
if( (WeiDu_TCHAR)!=NULL ) { free(WeiDu_TCHAR); (WeiDu_TCHAR)=NULL; }
return 0;
}
// 以上自定义菜单响应函数,用于响应自己工程的菜单。//
// 自定义菜单响应函数结束+++++//
//------------------------------------------------------------------------
//-------------------------------------------------------------------------
// 以下是 对话框过程函数
//
//No1. 初始位置设置
BOOL CALLBACK DialogProc_DefLocSet (
HWND hwndDlg, // Handle to the dialog box.
UINT uMsg, // Message.
WPARAM wParam, // First message parameter.
LPARAM lParam) // Second message parameter.
{
switch(uMsg)
{
case WM_INITDIALOG:
// Insert code here to put the string (to find and replace with)
// into the edit controls.
// ...
//SetDlgItemText(hwndDlg,IDC_MapName,a_tchar);
// MAKEINTRESOURCE(i)
SetDlgItemText(hwndDlg,IDC_MapName,MapName_TCHAR);
SetDlgItemText(hwndDlg,IDC_EditDefJingDu,JingDu_TCHAR);
SetDlgItemText(hwndDlg,IDC_EditDefWeiDu,WeiDu_TCHAR);
SetDlgItemText(hwndDlg,IDC_EditTest,a_tchar);
return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam))
{
//case IDC_BTNFINDNEXT:
// Insert code here to handle the case of pushing the
// "Find Next" button.
// ...
//break;
//case IDC_BTNREPLACE:
// Insert code here to handle the case of pushing the
// "Replace" button.
// ...
//break;
//case IDC_BTNREPLACEALL:
// Insert code here to handle the case of pushing the
// "Replace All" button.
// ...
// break;
case IDOK:
//注:100为返回的数据字节,不能太小,若太小,则出现没有全部返回的现象。
//不能用sizeof(MapName_TCHAR),因为sizeof(MapName_TCHAR)=4
GetDlgItemText(hwndDlg,IDC_MapName,MapName_TCHAR,100);
GetDlgItemText(hwndDlg,IDC_EditDefJingDu,JingDu_TCHAR,100);
GetDlgItemText(hwndDlg,IDC_EditDefWeiDu,WeiDu_TCHAR,100);
case IDCANCEL:
EndDialog(hwndDlg, 0);
break;
}
return TRUE;
}
return FALSE;
}
// -
// 以上对话框过程函数 结束
//-------------------------------------------------------------------------
//-------------------------------------------------------------------------------
// 以下为自定义函数(非菜单响应函数)
//
//1.调用初始化函数
void OnInitial(void)
{
//1.初始化客户区域
// Adjust the size of the client rect to take into account
// the command bar height.
GetClientRect(hwndMain,&box);
box.top+=CommandBar_Height(GetDlgItem(hwndMain,IDC_CMDBAR));
box.right=box.left+550;
//2.读取默认海图
char filename[] = "\\My Documents\\Haitu.ini";
LPCTSTR LPfilename=TEXT("\\My Documents\\Haitu.ini");
CIni Ini(filename,LPfilename);
char* MapName_char;
MapName_char=new char[40];
char* str;
str=new char[20];
//初始化变量, data和name
Ini.ReadData("默认海图","海图");
MapName_char=Ini.data;
DefJingDu=Ini.ReadData(MapName_char,"缺省经度");
DefWeiDu=Ini.ReadData(MapName_char,"缺省纬度");
Ini.ReadData(MapName_char,"目录");
str=Ini.data;
Ini.ReadData(MapName_char,"文件名前缀");
str=strcat(str,Ini.data);
//返回实际需要的MapName_TCHAR缓冲区的大小
int k=MultiByteToWideChar(CP_ACP,0,str,-1,path,0);;
MultiByteToWideChar(CP_ACP,0,str,-1,path,k);
TCHAR* path;
path=TEXT("01");
path=lstrcat(path,TEXT("\\My Documents"));
//注:用完后的指针变量要free()释放掉。
if( (MapName_char)!=NULL ) { free(MapName_char); (MapName_char)=NULL; }
if( (str)!=NULL ) { free(str); (str)=NULL; }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -