小编Icy*_*Brk的帖子

Application.Exit()哪个操作是第一个

当我在MSDN上阅读Application.Exit()的文档时,它说:

通知所有消息泵必须终止,然后在处理完消息后关闭所有应用程序窗口.

根据我的理解,为了通知所有消息泵终止,这种方法最终会将WM_QUIT消息发送到应用程序消息队列.发布消息后,该方法将关闭每个窗口(通过MSDN).问题出在这里,当这个方法试图关闭每个窗口时,WM_QUIT消息应该没有被处理,但是MSDN说"它在消息被处理关闭所有窗口".

文档似乎与我的推论相矛盾.这里有什么问题,非常感谢任何帮助.

.net c# winforms

10
推荐指数
1
解决办法
551
查看次数

默认的 maven 插件版本是如何决定的?

我想知道我什么时候没有在某些模块的 pom.xml 中指定插件版本,例如:

<build>
...
<plugin>
   <groudId>org.apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
   <version>3.8.0</version>
</plugin>
...
</build>
Run Code Online (Sandbox Code Playgroud)

我运行“mvn compile”时使用的默认插件版本是什么?

我已经尝试过了,实际上它使用的是 maven-compiler-plugin 版本“3.1”,上面的插件元素已注释,我的 maven 版本是 3.6.3。

我花了 1 个小时通过 Maven 的文档和相关帖子在谷歌上搜索,但没有找到确切的答案。我真的很想知道那个版本是如何决定的?如果有人知道任何线索,不胜感激。

java maven

9
推荐指数
1
解决办法
918
查看次数

模块会在延迟加载模块中加载两次吗

当我最近阅读 Angular2 的doc 时,它是这样说的:

如果我两次导入同一个模块怎么办?

那不是问题。当三个模块都导入 Module 'A' 时,Angular 会在第一次遇到模块 'A' 时评估一次模块 'A',并且不会再这样做。

在导入模块的层次结构中出现的任何级别 A 都是如此。> 当模块'B'导入模块'A',模块'C'导入'B',模块'D'导入[C,B,A]时,然后'D'触发对'C'的评估,从而触发评估'B',评估'A'。当 Angular 到达 'D' 中的 'B' 和 'A' 时,它们已经被缓存并准备好了

Angular 不喜欢带有循环引用的模块,所以不要让 Module 'A' ......

但我认为上述内容是在所有 Eager Loading Modules 的上下文中说明的。我怀疑这是否适用于延迟加载模块,例如,如果 AppModule 和延迟加载功能模块都导入相同的模块(例如 ModuleA),ModuleA 会被加载两次吗?

我的想法是:当 AppModule 和延迟加载模块加载时,会创建 ModuleA 类型的两个模块实例。我的理解正确吗?有人可以帮我澄清一下吗?先感谢您。

angular2-modules angular

5
推荐指数
2
解决办法
1160
查看次数

子窗口Z顺序

我在MSDN中看到,它说:

如果创建的窗口是子窗口,则其默认位置位于Z顺序的底部.如果创建的窗口是顶级窗口,则其默认位置位于Z顺序的顶部(但在所有最顶层窗口的下方,除非创建的窗口本身位于最顶层).(http://msdn.microsoft.com/en-us/library/windows/desktop/ms632680(v=vs.85).aspx)

但是,另一个文档说:当一个应用程序创建一个窗口时,系统将它放在同一类型窗口的z顺序的顶部 (http://msdn.microsoft.com/en-us/library/windows/ desktop/ms632599(v = vs.85).aspx)

当我像这样测试时,

btn1 = ::CreateWindow(L"button", L"OK", WS_TABSTOP|BS_DEFPUSHBUTTON|WS_VISIBLE|WS_CHILD
                    , 10, 10, 50, 30, hWnd, (HMENU)51, hInst, NULL);
btn2 = ::CreateWindow(L"button", L"Cancel", WS_TABSTOP|WS_CHILD|BS_PUSHBUTTON|WS_VISIBLE
                    , 20, 20, 70, 30, hWnd, (HMENU)52, hInst, NULL);
Run Code Online (Sandbox Code Playgroud)

新创建的子窗口(例如:我在窗口中创建了两个按钮并且它们重叠,我可以看到稍后创建的按钮覆盖了创建的第一个按钮)

MSDN中的第一个声明是否与我的测试相矛盾.

winapi

4
推荐指数
1
解决办法
3601
查看次数

NodeJS是否支持"导入"样式模块加载?

我正在查看从GitHub下载的NodeJS项目.它有一个主文件,server.js它使用ES6模块导入语法,如下所示:

import express from 'express';
import bodyParser from 'body-parser';
import fs from 'fs';
import { search } from './lib/words';
Run Code Online (Sandbox Code Playgroud)

我安装了NodeJS版本4.6.0,这很老了,我认为它不支持这种语法.相反,它应该像:

var express = require(express)
var bodyParser = require('body-parser')
...
Run Code Online (Sandbox Code Playgroud)

但是我可以正确地运行这个项目而没有错误,我认为这表明NodeJS支持这种语法,但NodeJS文档从未指定这样的模块语法.我们在这里使用它的原因是什么?谢谢你的帮助.

node.js es6-modules

4
推荐指数
1
解决办法
2188
查看次数

此关键字代表功能参数

最近,当我使用Rxjs 5时,我通过使用npm install Rxjs@5.0.1从node_modules下的下载代码中下载了Rxjs,在Rxjs文件夹中找到了Observable.d.ts,我看到它声明了它的构造函数,如下所示:

 *
 * @constructor
 * @param {Function} subscribe the function that is  called when the Observable is
 * initially subscribed to. This function is given a Subscriber, to which new values
 * can be `next`ed, or an `error` method can be called to raise an error, or
 * `complete` can be called to notify of a successful completion.
 */
constructor(subscribe?: <R>(this: Observable<T>, subscriber: Subscriber<R>) => TeardownLogic);
Run Code Online (Sandbox Code Playgroud)

我的问题是:在subscribe的函数类型声明中此关键字的用法是什么?:(此:Observable,...),TypeScript是否有一些有关此关键字用法的文档?谢谢。

typescript rxjs5

3
推荐指数
1
解决办法
1420
查看次数

如何在Win32程序中设置以记住大小被记住

我遇到了这个问题.我有一个简单的Win32程序,就像我在Visual Studio 2010的"模板 - > Visual C++"中选择"Win32项目"时可以得到的样板.

我发现所有其他基于Windows的程序,如Adobe Reader,Windows资源管理器具有以下功能:您将主窗口放大到新的大小,然后从文件菜单或系统菜单中选择"关闭"或"退出"关闭它,然后你再次启动程序,主窗口的大小将调整到上次.但是我从Visual Studio获得的程序作为引导程序没有这样的功能.

我对它进行了更多的研究,但无法找到WndClass或CreateWindow中的哪个设置,我可以通过调整来实现这一点.有谁知道,谢谢你的帮助.

winapi visual-c++

2
推荐指数
1
解决办法
501
查看次数