如何以编程方式读取SD卡的CID寄存器,其中包含序列号和其他信息?我可以通过Android Java或Native代码来实现吗?
埃里克,提前谢谢
在我的应用程序中,我想从另一个线程向对话框发送消息.我想将std :: exception派生类引用传递给对话框.
像这样的东西:
try {
//do stuff
}
catch (MyException& the_exception) {
PostMessage(MyhWnd, CWM_SOME_ERROR, 0, 0); //send the_exception or the_exception.error_string() here
}
Run Code Online (Sandbox Code Playgroud)
我想在对话框中收到消息并显示错误 the_exception.error_string()
LPARAM CMyDlg::SomeError(WPARAM, LPARAM)
{
show_error( ?????
return 0;
}
Run Code Online (Sandbox Code Playgroud)
std::string the_exception.error_string()我猜,传递使用PostMessage也没关系.
我正在调整触摸屏界面的应用程序,我们想要使用Windows Vista/7中包含的平板电脑文本输入面板,特别是其键盘.我想根据我的应用显示和隐藏它.基本上我想要ShowKeyboard()和HideKeyboard()功能.控制它的最佳方法是什么?
我查看了ITextInputPanel API但我无法直接用它控制键盘(也许我错过了什么?).我也试图向其窗口发送窗口消息失败.
该应用程序是用C++/MFC编写的.
任何指针都非常感谢.
从Visual C++,如何获取当前用户的My Documents文件夹的路径?
编辑:
我有这个:
TCHAR my_documents[MAX_PATH];
HRESULT result = SHGetFolderPath(NULL, CSIDL_MYDOCUMENTS, NULL, SHGFP_TYPE_CURRENT, my_documents);
Run Code Online (Sandbox Code Playgroud)
然而,result回来的价值是E_INVALIDARG.有什么想法可能是这样吗?
我正在实现一个任务栏替换,类似于Dock的应用程序切换器样式程序.它正在使用OpenGL做一些独特的东西,并使用键盘快捷键,所以它的设置方式,窗口并不总是有焦点.我想实现它,以便我可以将任意窗口带到前台,就像任务栏或ALT-TAB程序一样.
但是,我的代码只会导致应用程序图标在任务栏中闪烁.Windows API文档说这是应该发生的事情,但我正在寻找一种方法来解决这个问题.
我已经从以下示例中调整了我的代码,这些示例表示附加到前台线程应该允许您设置前景窗口.以下是网站:
http://www.voidnish.com/Articles/ShowArticle.aspx?code=dlgboxtricks
http://invers2008.blogspot.com/2008/10/mfc-how-to-steal-focus-on-2kxp.html
我的代码看起来像这样.请注意,它使用win32的win32包装器(self.hwnd是我想要带到前面的窗口的句柄):
fgwin = win32gui.GetForegroundWindow()
fg = win32process.GetWindowThreadProcessId(fgwin)[0]
current = win32api.GetCurrentThreadId()
if current != fg:
win32process.AttachThreadInput(fg, current, True)
win32gui.SetForegroundWindow(self.hwnd)
win32process.AttachThreadInput(fg, win32api.GetCurrentThreadId(), False)
Run Code Online (Sandbox Code Playgroud)
但是,除非我的窗口是前景窗口(通常不是这样),否则这只会导致程序的图标闪烁.
我做错了吗?还有另一种解决方法吗?我认为必须有,因为有很多应用程序切换器似乎能够做到这一点很好.
我在python中写这个,但如果有另一种语言的解决方案,我将使用包装器或做任何必要的事情来启动和运行.
提前致谢!
编辑: 我将开放一种方法,使其仅在我的特定计算机上工作,即在我的机器上启用任何应用程序关注焦点的方法.
已解决:您需要做的是禁用前景锁定.事实证明它就像这样容易:
win32gui.SystemParametersInfo(win32con.SPI_SETFOREGROUNDLOCKTIMEOUT, 0, win32con.SPIF_SENDWININICHANGE | win32con.SPIF_UPDATEINIFILE)
Run Code Online (Sandbox Code Playgroud) 我在Visual Studio 2008中开发基于MFC Dialog的应用程序.我想使用在应用程序启动时启动的计时器并继续运行并调用执行我的任务的函数?我怎样才能做到这一点?
谢谢
我已经使用了很多模态对话框,并且它们在没有使用的情况下工作正常AFX_MANAGE_STATE,但是最近我正在开发一个不同的项目,其中资源dll与启动dll不同.我浏览网页并找到上面的行,当我在启动对话框之前插入它时,它工作正常.我想也许因为我们有不同的dll,我们需要加载主dll的状态才能启动对话框,但我不确定.我无法在互联网上的任何地方找到一个好的解释.任何人都可以用简单的语言AFX_MANAGE_STATE解释我突然不得不使用它的原因和原因.
谢谢.
假设我有time_t和tm结构.我不能使用Boost而是使用MFC.我怎样才能使它像下面的字符串?
Mon Apr 23 17:48:14 2012
Run Code Online (Sandbox Code Playgroud)
使用sprintf是唯一的方法吗?
我目前正在开发一个专门用于UTF-8的MFC程序.在某些时候,我必须将UTF-8数据写入文件中; 要做到这一点,我正在使用CFiles和CStrings.
当我将utf-8(俄语字符,更准确)数据写入文件时,输出看起来像
Ðàñïå÷àòàíî:
Ñèñòåìà
Ïðîèçâîäñòâî
Run Code Online (Sandbox Code Playgroud)
等等.这绝对不是utf-8.要正确读取这些数据,我必须更改我的系统设置; 将非ASCII字符更改为俄语编码表确实有效,但随后我所有基于拉丁语的非ascii字符都会失败.无论如何,我就是这样做的.
CFile CSVFile( m_sCible, CFile::modeCreate|CFile::modeWrite);
CString sWorkingLine;
//Add stuff into sWorkingline
CSVFile.Write(sWorkingLine,sWorkingLine.GetLength());
//Clean sWorkingline and start over
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?我应该用别的东西吗?我错过了什么样的捕获?我会为你的智慧和经验而努力,和其他程序员一样.
编辑:当然,正如我刚问了一个问题,我终于找到了一些可能有趣的东西,可以在这里找到.以为我可能会分享它.
编辑2:
好的,所以我将BOM添加到我的文件中,该文件现在包含chineese字符,可能是因为我没有将我的行转换为UTF-8.添加bom我做了...
char BOM[3]={0xEF, 0xBB, 0xBF};
CSVFile.Write(BOM,3);
Run Code Online (Sandbox Code Playgroud)
之后,我补充说......
TCHAR TestLine;
//Convert the line to UTF-8 multibyte.
WideCharToMultiByte (CP_UTF8,0,sWorkingLine,sWorkingLine.GetLength(),TestLine,strlen(TestLine)+1,NULL,NULL);
//Add the line to file.
CSVFile.Write(TestLine,strlen(TestLine)+1);
Run Code Online (Sandbox Code Playgroud)
但后来我无法编译,因为我真的不知道如何获得TestLine的长度.strlen似乎不接受TCHAR. 固定,使用1000的静态长度.
编辑3:
所以,我添加了这段代码......
wchar_t NewLine[1000];
wcscpy( NewLine, CT2CW( (LPCTSTR) sWorkingLine ));
TCHAR* TCHARBuf = new TCHAR[1000];
//Convert the line to UTF-8 multibyte.
WideCharToMultiByte (CP_UTF8,0,NewLine,1000,TCHARBuf,1000,NULL,NULL);
//Find how many …Run Code Online (Sandbox Code Playgroud)