Tuesday, January 30, 2007

c#.net中关于嵌入文档后"另存为"的问题

发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: c#.net中关于嵌入文档后"另存为"的问题
发信站: 水木社区 (Tue Jan 30 14:49:53 2007), 站内

要显示菜单栏可以用下面的方式


object o = this.webBrowser1.ActiveXInstance;
if (o == null)
{
return;
}

IWebBrowser2 browser = o as IWebBrowser2;
if (browser != null)
{
object nullObject = null;
browser.ExecWB(SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref nullObject, ref nullObject);
}

如果只是想要saveas的话,也可以在navigatecomplete后
IWebBrowser2 browser = this.webBrowser1.ActiveXInstance as IWebBrowser2;
Excel.WorkBook book = browser.Document as Excel.Workbook;
book.saveas(...)



【 在 sandwyg (ger) 的大作中提到: 】
: c#.net用WebBrowser控件可以实现文档的嵌入,但是无法显示office文档菜单栏,那我想"另存为"怎么实现

请问这是什么意思: class A where T: new(){

发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: 请问这是什么意思: class A where T: new(){
发信站: 水木社区 (Tue Jan 30 10:33:12 2007), 站内

generics c#

一个类模板,要求T这个类必须有一个无参数的public的构造函数或者默认构造函数
http://msdn2.microsoft.com/en-us/library/d5x73970.aspx


【 在 lfmobile (绝地苍狼) 的大作中提到: 】
: 我看到别人的代码中有这么一个类定义的写法:
: class A where T: new(){
: ......}
: ...................

c#判断一个数组中是否包含某元素的方法

发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: c#判断一个数组中是否包含某元素的方法
发信站: 水木社区 (Sat Jan 27 17:37:39 2007), 站内

Contains

【 在 skynewborn (在水一方) 的大作中提到: 】
: 有没有什么现成的方法可以直接用,除了自己遍历比较之外?

VS2005中怎么改变启动时的环境呢?

发信人: pseudocode (I can Run!), 信区: DotNET
标 题: Re: VS2005中怎么改变启动时的环境呢?
发信站: 水木社区 (Sat Jan 27 17:36:31 2007), 站内

Tools -> Import and Export Settings -> Reset all settings -> Yes, save my current settings -> Visual C# development settings -> Finish


【 在 sancho (ajkkfhkjhafkanfknafkjanfkjhfkjabhfjkabf) 的大作中提到: 】
: 比如原来选的是c++,现在要改成c#...
: 虽然新建的时候可以改,但启动就自动改回来还是方便些///

Friday, January 26, 2007

各位帮忙看看:多线程,DLL返回消息

发信人: anzir (aa), 信区: MSDN
标 题: 各位帮忙看看:多线程,DLL返回消息
发信站: 水木社区 (Thu Jan 25 15:14:03 2007), 站内

【 以下文字转载自 VisualC 讨论区 】
发信人: anzir (aa), 信区: VisualC
标 题: 各位帮忙看看:多线程,DLL返回消息
发信站: 水木社区 (Thu Jan 25 15:13:32 2007), 站内

程序在CTestView中调用dll连接库中的函数进行长时间的处理,
打算每个一定时间从联结库的函数返回一个消息
但是不知道该怎么发消息
现在是采用多线程的方法
程序的大概流程如下
可是多线程函数直到动态连接库函数计算完成后才调用
不知道是因为多线程使用方法不对,还是因为这种方法根本不行


定义标志量
HANDLE hRunMutex;

多线程函数
void ProcessStatus(void *thrpara);

入口函数
void CTestView::TestFunc(char *spath, char *sext)
{
/////
long nproc = 0;
启动多线程
hRunMutex = CreateMutex( NULL, TRUE, NULL ); // Set
_beginthread(ProcessStatus, 0, &nproc);

开始调用DLL连接库函数,执行处理
CMyClass cls;
cls.DoLongTimeWork();

结束多线程
ReleaseMutex( hRunMutex );
CloseHandle( hRunMutex );
}

DLL中胡函数
void CMyClass::DoLongTimeWork()
{
long i;
for(i = 0; i < 10000; i ++)
{
//extensive computing.....
}
}

多线程回调函数
void ProcessStatus(void *thrpara)
{
while ( WaitForSingleObject( hRunMutex, 75L ) == WAIT_TIMEOUT );
{
SYSTEMTIME stime;
GetSystemTime(&stime);
TRACE("hello %d, %ld\n", stime.wMilliseconds, *(long *)thrpara);
}
}

--

※ 来源:·水木社区 http://newsmth.net·[FROM: 210.75.99.*]

[本篇全文] [本篇作者:whero] [进入讨论区] [返回顶部]2发信人: whero (月光族), 信区: MSDN
标 题: Re: 各位帮忙看看:多线程,DLL返回消息 (转载)
发信站: 水木社区 (Thu Jan 25 15:25:11 2007), 站内

ProcessStatus 上来会WaitForSingleObject,而那个mutex从你code看要longTimeWork
后才会释放,当然那个thread要计算完成后才干活。

【 在 anzir (aa) 的大作中提到: 】
: 标 题: 各位帮忙看看:多线程,DLL返回消息
: 发信站: 水木社区 (Thu Jan 25 15:14:03 2007), 站内
:
: 【 以下文字转载自 VisualC 讨论区 】
: 发信人: anzir (aa), 信区: VisualC
: 标 题: 各位帮忙看看:多线程,DLL返回消息
: 发信站: 水木社区 (Thu Jan 25 15:13:32 2007), 站内
:
: 程序在CTestView中调用dll连接库中的函数进行长时间的处理,
: 打算每个一定时间从联结库的函数返回一个消息
: 但是不知道该怎么发消息
: 现在是采用多线程的方法
: 程序的大概流程如下
: 可是多线程函数直到动态连接库函数计算完成后才调用
: 不知道是因为多线程使用方法不对,还是因为这种方法根本不行
:
:
: 定义标志量
: HANDLE hRunMutex;
:
: 多线程函数
: void ProcessStatus(void *thrpara);
:
: 入口函数
: void CTestView::TestFunc(char *spath, char *sext)
: {
: /////
: long nproc = 0;
: 启动多线程
: hRunMutex = CreateMutex( NULL, TRUE, NULL ); // Set
: _beginthread(ProcessStatus, 0, &nproc);
:
: 开始调用DLL连接库函数,执行处理
: CMyClass cls;
: cls.DoLongTimeWork();
:
: 结束多线程
: ReleaseMutex( hRunMutex );
: CloseHandle( hRunMutex );
: }
:
: DLL中胡函数
: void CMyClass::DoLongTimeWork()
: {
: long i;
: for(i = 0; i < 10000; i ++)
: {
: //extensive computing.....
: }
: }
:
: 多线程回调函数
: void ProcessStatus(void *thrpara)
: {
: while ( WaitForSingleObject( hRunMutex, 75L ) == WAIT_TIMEOUT );
: {
: SYSTEMTIME stime;
: GetSystemTime(&stime);
: TRACE("hello %d, %ld\n", stime.wMilliseconds, *(long *)thrpara);
: }
: }
:
: --
:
: ※ 来源:·水木社区 http://newsmth.net·[FROM: 210.75.99.*]


--

※ 来源:·水木社区 newsmth.net·[FROM: 211.99.222.*]

[本篇全文] [本篇作者:hleon] [进入讨论区] [返回顶部]3发信人: hleon (阿土仔(垚垚)), 信区: MSDN
标 题: Re: 各位帮忙看看:多线程,DLL返回消息 (转载)
发信站: 水木社区 (Thu Jan 25 16:04:37 2007), 站内

可是他的waitforsingleobject不是INFINITE呀

【 在 whero (月光族) 的大作中提到: 】
: ProcessStatus 上来会WaitForSingleObject,而那个mutex从你code看要longTimeWork
: 后才会释放,当然那个thread要计算完成后才干活。


--
天下风云出我辈,
一入江湖岁月催。
皇图霸业谈笑中,
不胜人生一场醉。


※ 来源:·水木社区 newsmth.net·[FROM: 58.185.111.*]

[本篇全文] [本篇作者:pseudocode] [进入讨论区] [返回顶部]4发信人: pseudocode (I can Run!), 信区: MSDN
标 题: Re: 各位帮忙看看:多线程,DLL返回消息 (转载)
发信站: 水木社区 (Thu Jan 25 18:19:39 2007), 站内

注意看他的while,多了个分号


多线程回调函数
void ProcessStatus(void *thrpara)
{
while ( WaitForSingleObject( hRunMutex, 75L ) == WAIT_TIMEOUT );
~~~~
{
SYSTEMTIME stime;
GetSystemTime(&stime);
TRACE("hello %d, %ld\n", stime.wMilliseconds, *(long *)thrpara);
}
}

--

【 在 hleon (阿土仔(垚垚)) 的大作中提到: 】
: 可是他的waitforsingleobject不是INFINITE呀