⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myproject.cpp

📁 采用Platform Builder进行编程
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	  
    //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 + -