正如标题所说.我希望我的应用程序在Windows Mobile设备打开时启动?我正在使用C#中的.NET Compact Framework 3.5开发此应用程序.谢谢!
我正在尝试复制以下行为(WM6).
转到设置 - >关于 - >设备ID.设备名称文本框获得焦点,导致屏幕键盘弹出.
我希望能够在我的应用程序中执行相同的操作,最好是在托管代码中.
对于我们的Windows Mobile应用程序,我想在设备上启用ClearType选项.根据MSDN 上的这篇文章,应该设置以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\GDI\Cleartype
Run Code Online (Sandbox Code Playgroud)
但是在设置此特定键后没有任何反应.即使软重置也不能启用它,但只是摆脱我刚刚创建的注册表项.
奇怪的是,当我使用Settings-> System-> Screen-> ClearType手动设置它时,它立即起作用.并且在更改设置之前和之后比较注册表导出表明它只是上面提到的关键变化.
我不太明白为什么当我自己更改注册表项时它不起作用.谁知道我在这里做错了什么?
[更新]看起来解决方案是执行以下任一操作:
使用正确的参数广播WM_SETTINGCHANGE消息,例如:
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 1)
但到目前为止还没有奏效.我猜wParam参数可能需要不同的值.
或者使用ClearType更改的相关事件调用CreateEvent.有点像BacklightChangeEvent或SDKBacklightChangeEvent会起作用.但到目前为止,我还没有看到关于这些事件的任何文档,所以我无法弄清楚事件是什么.
我在visual studio 2008上工作,现在我想在c#中为windows mobile创建应用程序.
什么rd要求以及如何构建它们?
我需要任何类型的模拟器吗?
我的解决方案包括2个可执行项目和几个dll.Project1是智能设备项目,Project2是Windows窗体项目.
两个项目都使用相同的库,原因是我想在我在设备上部署它之前在PC上测试我的库.
问题是DLL项目类型可以是智能设备类库或类库,而不是两者.我无法将SD项目的参考添加到WF,反之亦然.我能够将SD项目的引用添加到dll文件(从类库项目生成)而不是项目本身,但由于某种原因,我收到消息"无法从YYY程序集加载XXX类型".它不依赖于我的代码,因为当我为相同的源创建单独的项目时,一切都很好.
我发现的唯一解决方案是为每个库创建两种类型的项目,但我不知道如何基于相同的源创建2个项目.
我有一个弹出特定事件的表单.它从数组中绘制按钮并将Tag值设置为特定值.因此,如果您要按或单击此按钮,该函数应返回Tag值.
我怎样才能做到这一点?我怎么知道点击了哪个按钮?此时代码返回DialogResult,但我想从函数返回Tag值.我该如何修改我的代码以便它可以做到这一点?
public static DialogResult SelectBox(string title, string[] btnArray, string[] btnValueArray)
{
Form form = new Form();
Button[] buttonArray;
buttonArray = new Button[5];
form.Text = title;
for (int i = 0; i < btnArray.Length; i++)
{
buttonArray[i] = new Button();
buttonArray[i].Text = btnArray[i];
buttonArray[i].Tag = new int();
buttonArray[i].Tag = btnValueArray[i];
buttonArray[i].TabStop = false;
buttonArray[i].Location = new System.Drawing.Point(0, i * 40);
buttonArray[i].Size = new System.Drawing.Size(240, 40);
}
form.ClientSize = new Size(240, 268);
form.Controls.AddRange(new Control[] { buttonArray[0], buttonArray[1], buttonArray[2] });
form.FormBorderStyle = …Run Code Online (Sandbox Code Playgroud) 我试图在windows ce 6.0环境中调用.net cf 3.5中的非托管c ++ dll中的函数.
结构定义为:
typedef struct TagOperatorInfo
{
DWORD dwMode;
DWORD dwFormat; //Operator name format
DWORD dwAct; //Network type(Available in 3G module£ºGSM or 3G),
TCHAR szOper[32];
}OperatorInfo,*LPOperatorInfo;
Run Code Online (Sandbox Code Playgroud)
和函数调用是:
BOOL GetCurOperatorInfo(LPOperatorInfo pinfo);
Run Code Online (Sandbox Code Playgroud)
我在.net中定义了TagOperatorInfo,如下所示:
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, CharSet = System.Runtime.InteropServices.CharSet.Auto)]
public struct TagOperatorInfo
{
/// DWORD->unsigned int
public uint dwMode;
/// DWORD->unsigned int
public uint dwFormat;
/// DWORD->unsigned int
public uint dwAct;
/// TCHAR[32]
[System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
public string szOper;
}
Run Code Online (Sandbox Code Playgroud)
在看到一些文章和msdn文档后,我将本机函数称为:
[System.Runtime.InteropServices.DllImportAttribute(gsmaAdapterDLLName, EntryPoint = "#30", CallingConvention = CallingConvention.Winapi)] …Run Code Online (Sandbox Code Playgroud) 是否有可能在紧凑的框架3.5中获取线程状态信息?
Thread th=new Thread(new ThreadStart(DoIT));
th.Start();
Thred.sleep(1000);
th.??? // is thread running, suspended, etc.?
void DoIT(){
//do stuff in here and exit after some second
}
Run Code Online (Sandbox Code Playgroud) 我最近开始使用窗口电话7.我创建了一个委托并试图异步调用它.代码是这样的:
public class1
{
public delegate void fireAlwaysDelegate();
fireAlwaysDelegate fad;
public class1()
{
initializeComponents();
fad=new fireAlwaysDelegate(fireAlways)
}
fireAlways()
{
//some code
}
PhoneApplicationPage_loaded()
{
//some code
fda.beginInvoke(null,null);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我执行此代码时,它抛出一个异常,说.net紧凑框架不支持异步调用委托.根据我对WP7框架的理解,它几乎对所有内容都使用异步调用,所以我无法理解为什么不允许这样做.
任何解决这个问题的工作.
我希望在PhoneApplicationPage_loaded完成并启动UI后执行一些代码,我想从PhoneApplicationPage_loaded调用异步委托.
此外,我想了解为什么不允许异步调用代理.
给定值123,1234和12345,我需要将它们分别转换为1.23,12.34和123.45
这段代码,当我输入123,然后是1234,然后12345进入textbox2:
int originalVal = Convert.ToInt16(textBox2.Text);
double doubled = Convert.ToDouble(originalVal/100);
Run Code Online (Sandbox Code Playgroud)
...给我1,12和123而不是预期的1.23,12.34和123.45.
我需要做些什么才能获得理想的结果?请注意,这是使用VS2003和.NET 1.1的Windows CE/Compact Framework项目.