求助,win32 sysmetrics结构的问题

admin 发表于 2011-03-04 23:59 浏览次数:

#define NUMLINES ((int)(sizeof(sysmetrics)/sizeof (sysmetrics[0])))
#include<windows.h>
 struct 
{
int Index;
TCHAR * szLable;
TCHAR * szDesc;
}
sysmetrics [] =
{
SM_CXSCREEN, TEXT ("SM_CXSCREEN"),
TEXT ("Screen width in pixels"),
SM_CYSCREEN, TEXT ("SM_CYSCREEN"),
TEXT ("Screen height in pixels"),
SM_CXVSCROLL, TEXT ("SM_CXVSCROLL"),
TEXT ("Vertical scroll width"),
SM_CYHSCROLL, TEXT ("SM_CYHSCROLL"),
TEXT ("Horizontal scroll height"),
SM_CYCAPTION, TEXT ("SM_CYCAPTION"),

在windows程序设计第五版看到这段代码
我想问sysmetrics是在哪里定义的?

分类: VC | 评论数: 3 | 阅读全文

怎么点击IDC_BUTTON1后,使它的原标题"你好",改为"再见",再点一下换为"你好"啊?

admin 发表于 2011-03-04 23:54 浏览次数:

怎么点击IDC_BUTTON1后,使它的原标题"你好",改为"再见",再点一下换为"你好"啊?
请大师指点。~!谢谢啦!

分类: VC | 评论数: 15 | 阅读全文

vs2010的菜单改不过来

admin 发表于 2011-03-04 23:50 浏览次数:

自从VS2010整合了BCG的那一套界面之后,我感到极其的不适应。

在资源中修改了菜单之后,编译运行,菜单一点没变。(好像记忆在注册表中了)

哪位大侠知道这个怎么处理?

分类: VC | 评论数: 7 | 阅读全文

VC操作Word automation 问题

admin 发表于 2011-03-04 23:39 浏览次数:

在将word接口进行二次封装时遇到的一个问题:

C/C++ code
COleVariant vTrue((short)TRUE), vFalse((short)FALSE), vOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); m_wdInlineShapes = m_wdSel.GetInlineShapes(); m_wdInlineShape = m_wdInlineShapes.AddOLEObject(COleVariant("MSGraph.Chart.8"), vOptional, vFalse, vFalse, vOptional, vOptional, vOptional, vOptional );

在生成图表时,调用了 AddOLEObject 函数,但是要如何填充数据,查了很多资料都没找到,求高人解答!

分类: VC | 评论数: 4 | 阅读全文

如何快速简单的复制cptrlist?

admin 发表于 2011-03-04 23:30 浏览次数:

如题就是新定义一个链表与原来的相同?除了循环相等,还有什么别的方法?
如cptrlist m_gprah;
 cptrlist m_examp;
如何让m_examp=m_gprah?
谢谢!

分类: VC | 评论数: 1 | 阅读全文

请问下有BMP,JPG,PNG,DOC,TXT,pdf如何转TIFF格式啊?

admin 发表于 2011-03-04 23:28 浏览次数:

请各位大侠能提供下思路方法,有源码更好,小弟急需,谢谢了。方便可以邮箱pda123@qq.com
请大家多多帮忙啊

分类: VC | 评论数: 2 | 阅读全文

在ie对话框中输入连接于通过网页点击打开网页有何不同

admin 发表于 2011-03-04 23:26 浏览次数:

我在写一个网站屏蔽系统的时候 发现可以屏蔽ie对话框输入的地址
但是如果通过一些导航等连接过来的地址 就起不到屏蔽的作用了

依www.baidu.com为例
ie输入地址流程大致是
www.baidu.com -> 我截获后停止

连接流程
www.baidu.com->我停止->about:blank->www.baidu.com

就是说我让其停止的时候并没有真正的停止而是转向导了空白页 然后又转向了www.baidu.com

我又如何才做才可做到屏蔽的作用呢

分类: VC | 评论数: 6 | 阅读全文

API写的文件移动复制删除的程序 运行总是出错

admin 发表于 2011-03-04 23:17 浏览次数:
C/C++ code
#include <Windows.h> #include <stdio.h> #include <tchar.h> int main(int argc,LPCWSTR argv[]) { //删除 if (0==_tcscmp(_T("-d"),argv[1])&&argc==3) { if (!DeleteFile(argv[2])) { printf("删除错误:%x\n",GetLastError()); } else printf("删除成功!"); } //复制 else if (0==lstrcmp(_T("-c"),argv[1])&&argc==4) { if (!CopyFile(argv[2],argv[3],TRUE)) { if (GetLastError()==0x50) { printf("文件%s已经存在,是否覆盖?y/n:",argv[3]); if ('y'==getchar()) { if (!CopyFile(argv[1],argv[2],FALSE)) { printf("复制文件失败:%d\n", GetLastError()); } else printf("复制成功!\n"); } else return 0; } } else printf("复制成功!\n"); } //移动 else if (0==lstrcmp(_T("-m"),argv[1])&&argc==4) { if (!MoveFile(argv[1],argv[2])) { printf("移动文件失败:%d\n",GetLastError()); } else printf("移动文件成功!"); } else printf("参数错误!"); return 0; }

运行总是参数错误

分类: VC | 评论数: 5 | 阅读全文

二维动态数组读取二进制文件的问题

admin 发表于 2011-03-04 23:16 浏览次数:

使用VC++2008读取GPF格式文件,前两部分都没问题,读第三部分通道数据时由于创建了二维动态数组,程序读写总是不正常,请各位牛人指点迷津~[code=C/C++][/code]
#include "stdafx.h"
#include "_header.h"
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{ int _Table[8][1024];
struct SGpfHeader header;
ifstream input;
input.open("D:\\GPF\\FY2E\\FY2E_2010_07_11_00_31_E_PJ1.gpf",ios::binary);
if(input.fail())
{
cout<<"文件无法打开…\n";
}
else
{
input.read((char*) &header,sizeof(header));
input.seekg(2048);//文件指针移动到2048字节处,读定标表数据
input.read((char*)&_Table,sizeof(_Table));
//定义动态二维数组指针
double **p=new double*[header.wHeight];
for(int i=0;i<header.wHeight;i++)
p[i]=new double[header.wWidth];
input.seekg(34816);//文件指针移动到34816字节处,读通道数据
/*//while(!input.eof())
//{
//input.read((char*)&p,4);
//}
for(int i=0;i<header.wHeight;i++)
input.read((char*)&p[i],4*header.wWidth);
  */

for(int i=0;i<header.wHeight;i++)
for(int j=0;j<header.wWidth;j++)
{
cout<<*(*(p+i)+j)<<endl;
}
//cout<<"malloc the allocated memory"<<endl;
//释放内存空间
for(int i=0;i<header.wHeight;i++)
delete[]p[i];
delete[] p;
//cout<<"delete the allocated memory"<<endl;
}
ofstream output;
output.open("c:\\test.txt",ios::out);
//output<<header.wSatID<<endl;
for(int i=0;i<8;i++)
{
for(int j=0;j<1024;j++)
output<<"定标表的数据内容:["<<i<<"]["<<j<<"]"<<_Table[i][j]<<endl;
}
input.close();
output.close();
return 0;
}
另附gpf格式:
静止气象卫星FY2C投影文件的扩展名为gpf,取自GeoStationary-Satellete Project File三个单词的开头字母。
投影文件由三个部分组成:投影数据头、定标表、通道数据。
一、投影数据头
长度为2048字节,具体定义如下:
struct SGpfHeader //投影数据头(Project Data Header), 2048字节
{
WORD wFileID; //2,固定为GF
WORD wVersion; //4,版本号
WORD wSatID; //6,卫星标识,FY2C为35
WORD wYear; //8,开始扫描时间:年
WORD wMonth; //10,开始扫描时间:月
WORD wDay; //12,开始扫描时间:日
WORD wHour; //14,开始扫描时间:时
WORD wMinute; //16,开始扫描时间:分
WORD wChNums; //18,通道数目
WORD wPjType; //20, 投影类型,不投影=0, 等经纬度=1, 麦卡托=2, 兰伯特=3, //极射赤面=4, 艾尔伯斯投影=5
WORD wWidth; //22,宽度
WORD wHeight; //24,高度
float fCLonRes;//28,投影展开面上中心点像素对应的地球点的分辨率
float fCLatRes;//32,投影展开面上中心点像素对应的地球点的分辨率
float fStdLat1;//36,标准纬度1
float fStdLat2;//40,标准纬度2
float fEarthR; //44,地球半径
float fMinLat; //48,投影范围最小纬度
float fMaxLat; //52,投影范围最大纬度
float fMinLon; //56,投影范围最小经度
float fMaxLon; //60,投影范围最大经度
float fLtLat; //64,左上角纬度
float fLtLon; //68,左上角经度
float fRtLat; //72,右下角纬度
float fRtLon; //76,右下角经度
float fLbLat; //80,左下角纬度
float fLbLon; //84,左下角经度
float fRbLat; //88,右上角纬度
float fRbLon; //92,右上角经度
float fStdLon; //96,标准经度(中心经度)
float fCenterLon; //100,中心经度
float fCenterLat; //104,中心纬度
BYTE ucChIndex[128]; //104+128=232,通道索引:红外1为1,红外2为2,红外3为3,红外4为4,可见光为5
float fPLonRes; //236,投影展开面的经向分辨率
float fPLatRes; //240,投影展开面的纬向分辨率
char cReserved[1808];// 2048,保留空间, 以备后用
};

二、定标表
存放了红外1探测器、红外2探测器、红外3探测器、红外4探测器、可见光探测器1、可见光探测器2、可见光探测器3、可见光探测器4共8各仪器的定标表,数据类型为长整形(4字节,原浮点数*1000取整数),红外探测器共有1024个等级,可见光探测器(原浮点数*100000000)尽管只有64个等级,但为了统一起见,仍然存为1024个等级,只不过后面的960个字节全为0,因此,定标表占用的空间为8(个探测器)×1024(个等级)×4字节(长整形)= 32768字节。

三、通道数据
按照投影数据头(见一)中通道索引表的次序分通道依次排放,红外通道数据保存为2字节,可见光通道数据保存为1字节。

分类: VC | 评论数: 4 | 阅读全文

fatal error C1083: 无法打开包括文件:“afxcontrolbars.h”: No such file or directory

admin 发表于 2011-03-04 23:13 浏览次数:

fatal error C1083: 无法打开包括文件:“afxcontrolbars.h”: No such file or directory
请教各位大虾,急急急。。。

分类: VC | 评论数: 8 | 阅读全文

VC++中如何实现对其他应用程序模块的加载?

admin 发表于 2011-03-04 23:09 浏览次数:

用MFC编写的应用程序,需要判断窗口句柄,并对相应窗口做属性设置。问题出现在64位Windows操作系统下,由于64位Windows操作系统有WOW64的兼容32位应用程序运行的环境,导致用x64编译生成的程序只能够识别64位的窗口句柄,对32位应用程序的窗口句柄却难以取得。

针对这种问题:
1.在64位系统下是否可以获取32位的窗口句柄。这是一种办法,好像行不通。
2.现在试着用另一种方法,就是编译生成32位版本和64位版本,经过win32编译生成32位版本为Grid32.exe,x64编译生成64位版本Grid64.exe,通过Grid32.exe运行时加载(后台运行)Grid64.exe模块,Grid64.exe运行时加载(后台运行)Grid32.exe模块。即两个程序同时运行。同时当其中一个配置改变时,另外一个程序配置也随之改变。
3.或者有更好的办法?

感谢提出宝贵意见,现就第2种方法请教各位大侠:
1.针对这种问题如何加载(运行)其他应用程序?
2.如何实现当运行的应用程序配置改变时另一个被加载的后台运行应用程序配置也改变?
其实为了就是想在64位Windows系统下都能识别32位和64位窗口句柄,然后实现相应功能。

分类: VC | 评论数: 7 | 阅读全文

n个石子的分配问题

admin 发表于 2011-03-04 23:03 浏览次数:

有3个杯子,有n个质量不同的小石子,现在要将这n个石子分配到3个杯子里面,请问如何分配可以让这3个杯子的
重量最平均?
大家有什么算法???

分类: VC | 评论数: 5 | 阅读全文

想问问前辈怎么学习VC

admin 发表于 2011-03-04 22:58 浏览次数:

我是一个VC初学者,看完了孙鑫老师的VC++深入详解,感觉他书的内容和例子都掌握的还不错,对MFC框架和编程的基础也有了些了解。
但是我还是感觉自己什么都不会做,问下大家,我下一步应该怎么做的。
我现在好想做点东西出来,增加点信心。我又应该怎么去学呢?
比如,想学一些控件的使用,不过又不知道买什么书,怎么去学。
大家都否推荐几本这样的书,有视频推荐的话更好!
谢谢,大家!~

分类: VC | 评论数: 15 | 阅读全文

新建的解决方案和项目设置

admin 发表于 2011-03-04 22:53 浏览次数:

在.NET 2003下,可以将新建的解决方案和项目设置在同一个目录下吗?

示例如下:

  jjfa.sln
  project1.vcproj
  project2.vcproj

分类: VC | 评论数: 1 | 阅读全文

VS2008 MFC程序能否从VC6中直接引入对话框资源???

admin 发表于 2011-03-04 22:52 浏览次数:

如题 
谢谢 以前是VC6写的。能否直接引入资源可不用重新设计??

分类: VC | 评论数: 4 | 阅读全文

[STAThreadAttribute]作用是什么

admin 发表于 2011-03-04 22:48 浏览次数:

在C++/CLI的
[STAThreadAttribute]
int main(array<System::String ^> ^args)
大师们,请问[STAThreadAttribute]作用是什么,没有不能生成项目

分类: VC | 评论数: 3 | 阅读全文

ntfs文件系统,盘符放在什么位置

admin 发表于 2011-03-04 22:41 浏览次数:

比如对于一个硬盘 我划分了一个主分区 C,D是光驱,接着我有分了个扩展分区,建立了 E F G 三个逻辑分区,并且都未格式化。现在的情况是,我分析分区表获得了每个分区 大小 和 开始 结束的扇区,但是不知道怎么把盘符 和其大小对应起来。比如通过分区表 我知道 一共4个盘,分别是10G 20G 30G 40G,但是怎么能清楚c e f g盘分别对应哪个大小呢。

分类: VC | 评论数: 4 | 阅读全文

请问下,怎样修改tab页的选中标签的字体颜色,和背景颜色?谢谢回答

admin 发表于 2011-03-04 22:37 浏览次数:

如题,谢谢回答

分类: VC | 评论数: 15 | 阅读全文

socket传输十六进制数的问题?

admin 发表于 2011-03-04 22:32 浏览次数:

小弟愚钝,对byte的操作一直不是很了解,只是知道了一点皮毛,有个问题搞了一下午还没搞定。
具体是这样的,我要进行客户端的编程,server端的数据协议已经是定好的,server端认为收到的数据格式为:
03 04 
01 
01
00 01 
00 00 00 02 
00 00 00 01
分为上述几段,为了查看方便,每段我用了回车分开,其实有些段根本用不了4位(比如00 00 00 01,只是用1计算得来的),但是为了扩展,占了4位。其中第一段0304为十进制772,我实现了部分代码,但发现总是有问题:

 

C/C++ code
BYTE byBuffer[1024] = {0}; //0304 DWORD dwData = htons(772); strncat((LPSTR)byBuffer, (LPSTR)&dwData, 2); //01 dwData = 1; strncat((LPSTR)byBuffer, (LPSTR)&dwData, 1); //01 dwData = 1; strncat((LPSTR)byBuffer, (LPSTR)&dwData, 1); //00 01 dwData = 0; strncat((LPSTR)byBuffer, (LPSTR)&dwData, 1); dwData = 1; strncat((LPSTR)byBuffer, (LPSTR)&dwData, 1); //00 00 00 02 dwData = 0; strncat((LPSTR)byBuffer, (LPSTR)&dwData, 1); dwData = 0; strncat((LPSTR)byBuffer, (LPSTR)&dwData, 1); dwData = 0; strncat((LPSTR)byBuffer, (LPSTR)&dwData, 1); dwData = 2; strncat((LPSTR)byBuffer, (LPSTR)&dwData, 1); //00 00 00 01 dwData =0; strncat((LPSTR)byBuffer, (LPSTR)&dwData, 1); dwData = 0; strncat((LPSTR)byBuffer, (LPSTR)&dwData, 1); dwData = 0; strncat((LPSTR)byBuffer, (LPSTR)&dwData, 1); dwData = 1; strncat((LPSTR)byBuffer, (LPSTR)&dwData, 1); send( mySocket, (LPCSTR)byBuffer, 1024, 0);

最后发出去的数据为:
03 04 01 01 01 02 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (后面省略了很多00)
其中只有前面(03 04 01 01)这部分是我想要的结果,中间有一部分00没有传过去,不知道怎么搞呢?

分类: VC | 评论数: 19 | 阅读全文

关于CStdioFile写文件乱码问题

admin 发表于 2011-03-04 22:27 浏览次数:

先是定义了一个CString aa; 
然后给CString赋值了

aa = _T("这里是中文");

然后建一个CStdioFile类,用打开文件不截断和写入方式打开。
然后用write函数写入对应的txt文件

CStdioFile oufile;
//然后打开文件
outfile.open("1.xtx",CFILE::modecreat | CFILE::modewrite);
outfile.write(aa,_tcslen(aa));
outfile.close();
但是打开文件以后,里面的确实乱码~~~不是“这里是中文这句话”~~这是怎么回事呢~~???

是不是unicode编码之类的问题~~之前在VC6的时候挺好的~~后来装了VS2010~~~就不行了~~

一直不太懂unicode和原来的ASIC的区别啥的~~是内存再用的区别么~~??

希望能说的通俗一些~~谢谢了~~

分类: VC | 评论数: 13 | 阅读全文

返回首页 | 关于我们 | 联系我们 | 广告合作 | 网站地图 | 友情链接 | 版权声明